遇到一個java讀取一個又任意符号做分隔符的字元串的問題,找到一個解決的例子:
StringTokenizer類
Java語言中,提供了專門用來分析字元串的類StringTokenizer(位于java.util包中)。該類可以将字元串分解為獨立使用的單詞,并稱之為語言符号。語言符号之間由定界符(delim)或者是空格、制表符、換行符等典型的空白字元來分隔。其他的字元也同樣可以設定為定界符。StringTokenizer類的構造方法及描述見表15-6所示。
表15-6 StringTokenizer類的構造方法及描述
構 造 方 法 | 描 述 |
StringTokenizer(String str) | 為字元串str構造一個字元串分析器。使用預設的定界符,即空格符(如果有多個連續的空格符,則看作是一個)、換行符、回車符、Tab符号等 |
StringTokenizer(String str, String delim) | 為字元串str構造一個字元串分析器,并使用字元串delim作為定界符 |
StringTokenizer類的主要方法及功能見表15-7所示。
表15-7 StringTokenizer類的主要方法及功能
方 法 | 功 能 |
String nextToken() | 用于逐個擷取字元串中的語言符号(單詞) |
boolean hasMoreTokens() | 用于判斷所要分析的字元串中,是否還有語言符号,如果有則傳回true,反之傳回false |
int countTokens() | 用于得到所要分析的字元串中,一共含有多少個語言符号 |
代碼15-7中,舉例說明StringTokenizer類、類中方法的使用。程式分析兩個字元串,統計字元串中單詞的個數。
代碼15-7 StringTokenizer類的使用StringTokenizerDemo.java
import java.util.*;
public class StringTokenizerDemo
{
public static void main(String[] args)
{
String str1 = "Hello world!This is Java code,stringTokenizer Demo.";
//聲明并初始化字元串str1
String str2 = "How to use StringTokenizer?StringTokenizer?";
//聲明并初始化字元串str2
StringTokenizer strT1 = new StringTokenizer(str1," ,.!");
//建立StringTokenizer類的對象strT1,并構造字元串str1的分析器
//以空格符、","、"."及"!"作為定界符
StringTokenizer strT2 = new StringTokenizer(str2," ?");
//建立StringTokenizer類的對象strT2,并構造字元串str2的分析器
//以空格符及"?"作為定界符
int num1 = strT1.countTokens();
//擷取字元串str1中語言符号的個數
int num2 = strT2.countTokens();
//擷取字元串str2中語言符号的個數
System.out.println("str1 has "+num1+" words.They are:");
while(strT1.hasMoreTokens())
{ //利用循環來擷取字元串str1中下一個語言符号,并輸出
String str = strT1.nextToken();
System.out.print("\""+str+"\" ");
}
System.out.println("\nstr2 has "+num2+" words.They are:");
while(strT2.hasMoreTokens())
{ //利用循環來擷取字元串str2中下一個語言符号,并輸出
String str = strT2.nextToken();