我正在使用正则表达式来解析字符串,该字符串使用会重复自身1次或更多次时间以从字符串中提取所有整数的任何非数字字符。我正在使用Java 8和InteliJ IDEA。
我的代码:
Pattern r = Pattern.compile("[^0-9]+");
String[] output = r.split("it 15 is25 a 20string");
for (int i = 0; i < output.length; i++) {
System.out.print("output " +i+" = ");
System.out.println(output[i]);
}
输出:
output 0 =
output 1 = 15
output 2 = 25
output 3 = 20
预期输出:
output 0 = 15
output 1 = 25
output 2 = 20
当数组只包含数字字符串时,我不知道output [0]中的空字符串从哪里来。
您能启发我这种奇怪的行为,我该如何解决?
编辑: 我的问题被标记为重复 但是这里提供的关于extract digits from a string的答案不是我想要的,因为我想独立提取每个数字,而不是从字符串中删除所有非数字字符。
在某些情况下,here中关于拆分生成空字符串的答案可能解释了拆分的行为,但总体答案仅针对整个情况,不能解决我的问题。