[英]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());
}
}
}
問題:
while(st.hasMoreTokens())
那么如何使用StringTokenizer
? st.nextToken
,我應該使用什么? StringTokenizer是一個遺留類,出於兼容性原因而保留
首先,如果沒有那些hasMoreTokens()
和next()
方法,則無法使用該類。
您不能對其進行循環,因為hasMoreElements()
返回與hasMoreTokens
方法相同的值。 nextElement()
返回與nextToken
方法相同的值,並且您不想使用它們。
其他明智的hasMoreElements
和nextElement
是替代方案。
盡管在新代碼中不鼓勵使用它。 建議任何尋求此功能的人改用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]);
如果您不想使用while
和nextToken
,請進行字符串拆分。 這條路:
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.