Tokenizer java (string)



例如,我ve got Some string a.b.c.d',我用标记分隔它。 但是现在我想用 a 做一件特定的事情,然后用 B 做其他事情,用 C 做其他事情。我该怎么做?

String value="a.b.c.d";
StringTokenizer tokenize = new StringTokenizer(value, ".");
while(tokenize.hasMoreTokens()){
    String separated1= tokenize.?????;  
    String separated2= tokenize.?????;                            
    String Val1 = someMethod1(separated1); 
    String Val2 = someMethod2(separated2); 
}
//tokenize next line is not solution 

只是为了详细说明@RealSkeptic已经说过的内容,请避免循环:

    String value = "a.b.c.d";
    String[] separated = value.split("\.");
    if (separated.length >= 2) {
        String val1 = someMethod1(separated[0]); 
        String val2 = someMethod2(separated[1]); 
    } else {
        // other processing here
    }

如果您愿意,您可以使用StringTokenizer执行类似操作,只是至少需要两个 if 语句来检查是否有足够的令牌。但正如@user3437460所说,StringTokenizer现在是遗产; 建议在新代码中使用String.split()

使用 String.split,您可以将.拆分为数组。

像这样的东西会打印每个令牌怎么样:

        String value = "a.b.c.d";
        String[] tokens = value.split("\.");
        for (String token : tokens) {
            System.out.println(token);
        }

.需要转义,因为split函数采用正则表达式,.是通配符

为什么不使用 split ?更易于使用,在这里更有意义

相关内容

  • 没有找到相关文章

最新更新