0

我在 String tokenizer 中遇到了一些问题,例如如果我的代码遵循,那么我想知道一些问题。

代码

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,我应该使用什么?
4

2 回答 2

0

如果您不想使用whileand nextToken,请使用字符串拆分。这边走:

String s ="this is him";
        String[] s2 = s.split(" ");
        for (String str : s2) {
            System.out.println(str);
        }
于 2013-10-17T08:03:35.460 回答
0

StringTokenizer是一个遗留类,出于兼容性原因而保留

hasMoreTokens() 首先,如果没有这些和next()方法,您将无法使用该类。

您不能循环使用它作为替代方法,因为hasMoreElements()返回与方法相同的值hasMoreTokensnextElement()返回与方法相同的值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]);
于 2013-10-17T07:39:33.760 回答