当我尝试分解10-5*6/2+20
之类的字符串以仅将运算符留在数组列表中时,它会在数组列表的开头添加额外的两个位置。
为什么会发生这种情况,我该如何预防?
起始编号的位数越多,添加到列表开头的空格就越多。
String sum = "10-5*6/2+20";
String numbers = "[\\d]";
String string = sum;
String[] splits = string.split(numbers);
for (int i = 0; i < splits.length; i++)
{
System.out.println(splits[i]);
}
答案 0 :(得分:2)
您可以使用匹配器并检索您感兴趣的内容,而不是删除您不想要的内容:
String sum = "10-5*6/2+20";
Matcher m = Pattern.compile("\\D").matcher(sum); //keep non digit characters
while (m.find()) {
System.out.println(m.group());
}