java“stringtokenizer.nextToken(delimiter);”如何工作?

时间:2011-02-19 09:18:49

标签: java string stringtokenizer

我的意思是什么字符串值被接受为分隔符? 这是因为我一直在尝试使用由几个不同字符组成的字符串,但程序似乎只是忽略它,只是用空格作为默认分隔符进行扫描......

例如,如果标记化字符串如下: 电话号码= 790-3233

我希望第一个令牌达到“=”,因此我将其设置为分隔符,下一个令牌应该是字符串“790-3233”

提前致谢...

3 个答案:

答案 0 :(得分:1)

默认情况下,分隔符为space,如果您不提供

    // Extracted StringTokenizer.java
     public StringTokenizer(String string) 
    {
            this(string, " \t\n\r\f", false); 
    }

如果您将=作为分隔符与字符串一起提供,则它会分割

StringTokenizer st = new StringTokenizer("Phone Number = 790-3233","=");

答案 1 :(得分:1)

关注remark from the API docs

  

StringTokenizer是一个遗留类,出于兼容性原因而保留,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人都使用String的split方法或java.util.regex包。

在这种情况下我会使用拆分:

String text = "Phone Number = 790-3233";
String[] tokens = text.split("\\s*=\\s*");

正则表达式\s*=\s*匹配零个或多个空格字符,后跟=个符号,后跟零个或多个空格字符。

答案 2 :(得分:0)

使用:

String[] result = "your string=790-3233".split("=");

对于字符串标记符,请参阅reference