StringTokenizer類的使用,使用它可以把字符串分解成多個標(biāo)記,和String的split方法功能相似。
構(gòu)造一個StringTokenizer對象時,需要制定三個參數(shù):待分解的字符串、分解時用的分隔符(單個字符或者是字符串)、是否把分隔符當(dāng)做標(biāo)記(默認(rèn)為false)。
StringTokenizer 的 hasMoreTokens方法判斷字符串中是否還有更多的可用標(biāo)記。
StringTokenizer 的 nextToken方法返回下一個標(biāo)記。
/**------------------------------------UsingStringTokenizer.java----------------------------------------*/

/**
* StringTokenizer主要用來根據(jù)分隔符來分割字符串。
*/
public class UsingStringTokenizer {

/**默認(rèn)分隔符*/
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 是否返回分隔符,默認(rèn)為false。
* @param maxfields 分割后的最大的段數(shù)
* @return 被分割后的字符串?dāng)?shù)組
*/
public static String[] process(String line, String delim, boolean returnDelims) {

List results = new ArrayList();
//新建一個StringTokenizer對象
StringTokenizer st = new StringTokenizer(line, delim, returnDelims);
//循環(huán),如果字符串中還有分隔符,則繼續(xù)
while (st.hasMoreTokens()) {
//取上一個分隔符到下一個分隔符之間的字符串
String s = st.nextToken();
//將中間的字符串添加到結(jié)果列表中
results.add(s);
}
return (String[])results.toArray(new String[0]);
}
/**
* 輸出分割結(jié)果
* @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));
}
}
































































-- 學(xué)海無涯