Posted on 2009-12-11 23:39
啥都写点 阅读(557)
评论(0) 编辑 收藏 所属分类:
J2SE
StringTokenizer类的使用,使用它可以把字符串分解成多个标记,和String的split方法功能相似。

构造一个StringTokenizer对象时,需要制定三个参数:待分解的字符串、分解时用的分隔符(单个字符或者是字符串)、是否把分隔符当做标记(默认为false)。

StringTokenizer 的 hasMoreTokens方法判断字符串中是否还有更多的可用标记。

StringTokenizer 的 nextToken方法返回下一个标记。

/** *//**------------------------------------UsingStringTokenizer.java----------------------------------------*/


/** *//**
* StringTokenizer主要用来根据分隔符来分割字符串。
*/

public class UsingStringTokenizer
{


/** *//**默认分隔符*/
public final static String DELIM = ",";

public static String[] process(String line)
{
return process(line, DELIM, false);
}


public static String[] process(String line, String delim)
{
return process(line, delim, false);
}

/** *//**
* 用StringTokenizer分割字符串
* @param line 待分割的字符串
* @param delim 分割符
* @param returnDelims 是否返回分隔符,默认为false。
* @param maxfields 分割后的最大的段数
* @return 被分割后的字符串数组
*/

public static String[] process(String line, String delim, boolean returnDelims)
{

List results = new ArrayList();
//新建一个StringTokenizer对象
StringTokenizer st = new StringTokenizer(line, delim, returnDelims);
//循环,如果字符串中还有分隔符,则继续

while (st.hasMoreTokens())
{
//取上一个分隔符到下一个分隔符之间的字符串
String s = st.nextToken();
//将中间的字符串添加到结果列表中
results.add(s);
}
return (String[])results.toArray(new String[0]);
}

/** *//**
* 输出分割结果
* @param input
* @param outputs
*/

public static void printResults(String input, String[] outputs)
{
System.out.println("Input: " + input);

for (int i = 0; i < outputs.length; i++)
{
System.out.println("Output " + i + " was: " + outputs[i]);
}
}


public static void main(String[] a)
{
printResults("A|B|C|D", process("A|B|C|D", "|"));
printResults("A||C|D", process("A||C|D", "|", true));
printResults("A|||D|E", process("A|||D|E", "|", false));
printResults("A;bD;|E;FG", process("A;bD;|E;FG", ";"));
printResults("A;bD;|E;FG;dfxxf;ert", process("A;bD;|E;FG;dfxxf;ert", ";", false));
}
}

--
学海无涯