我在使用java string tokenizer时遇到了问题:
String myString = "1||2||3|||4";
StringTokenizer stp = new StringTokenizer(myString, "||");
while (stp.hasMoreTokens()) {
System.out.println(stp.nextToken());
}
实际输出:[1,2,3,4]
预期输出:[1,2,3,'|4']
任何人都能帮助我吗
答案 0 :(得分:1)
试试这个..
String myString = "1||2||3|||4";
String[] s=myString.split("\\|\\|");
for (String string : s) {
System.err.println(string);
}
答案 1 :(得分:0)
我认为你不能做任何事情,因为StringTokenizer
的工作原理是什么(你可以把returnDelims
设为真,然后手动删除它,但有时比看上去更难)
String myString = "1||2||3|||4";
String[] tokens = myString.split("\\|\\|");
for(String token : tokens)
{
System.out.println(token);
}
您可以使用您想要的分割。
输出:
1
2
3
| 4
答案 2 :(得分:0)
建议使用String类的split方法执行此操作,因为StringTokenizer与给定的字符串匹配,split使用正则表达式。我会用这个:
String[] splitStr = myString.split("[|]{2}");
每当正则表达式[|](单个管道)连续两次匹配时,它匹配。
答案 3 :(得分:0)
你可能会想到String.split,因为这会分裂在分隔符字符串上。
StringTokenizer
接受分隔符字符串并将其中的所有字符识别为分隔符。所以实际上你冗余地指定了“|”角色第二次。
您可能需要使用拆分功能:
System.out.println(Arrays.toString("1||2||3|||4".split("\\|\\|")));
这会产生
[1,2,3,| 4]
答案 4 :(得分:0)
看看这是一个简单的解决方案:
StringTokenizer stp = new StringTokenizer(myString, "|");
while (stp.hasMoreTokens()) {
System.out.println(stp.nextToken());
}