簡體   English   中英

StringTokenizer問題

[英]StringTokenizer questions

我在String標記生成器中遇到一些問題,例如如果我遵循以下代碼,那么我想知道一些問題。

代碼

public class Str_Tokenizer {
    public static void main(String args[]){
        StringTokenizer st=new StringTokenizer("this is him");
        while(st.hasMoreTokens()) {
            System.out.println(st.nextToken());
        }
    }
}

問題:

  1. 如果我不使用while(st.hasMoreTokens())那么如何使用StringTokenizer
  2. 如果我不使用st.nextToken ,我應該使用什么?

StringTokenizer是一個遺留類,出於兼容性原因而保留

首先,如果沒有那些hasMoreTokens()next()方法,則無法使用該類。

您不能對其進行循環,因為hasMoreElements()返回與hasMoreTokens方法相同的值。 nextElement()返回與nextToken方法相同的值,並且您不想使用它們。

其他明智的hasMoreElementsnextElement是替代方案。

盡管在新代碼中不鼓勵使用它。 建議任何尋求此功能的人改用String的split方法或java.util.regex包。

甚至StringTokenizer的文檔都給出了如何避免使用它的示例

下面的示例說明如何使用String.split方法將字符串分解成其基本標記:

 String[] result = "this is a test".split("\\s");
 for (int x=0; x<result.length; x++)
     System.out.println(result[x]);

如果您不想使用whilenextToken ,請進行字符串拆分。 這條路:

String s ="this is him";
        String[] s2 = s.split(" ");
        for (String str : s2) {
            System.out.println(str);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM