例如,我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
答案 0 :(得分:3)
只是说明@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()
。
答案 1 :(得分:1)
使用String.split,您可以将.
拆分为数组。
这样会打印每个标记的内容如何:
String value = "a.b.c.d";
String[] tokens = value.split("\\.");
for (String token : tokens) {
System.out.println(token);
}
.
需要进行转义,因为split
函数采用正则表达式而.
是通配符
答案 2 :(得分:0)
为什么不使用拆分?更容易使用,在这里更有意义