Posted on 2009-12-11 23:39
啥都写点 阅读(556)
评论(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));
}
}
-- 学海无涯