例如,我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 ?更易于使用,在这里更有意义