Posted on 2009-12-11 23:39
啥都寫點 閱讀(558)
評論(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));
}
}

--
學海無涯