天天看點

java使用StringTokenizer字元串分割

遇到一個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();

繼續閱讀