我试图分解一个非常简单的字符串集合,这些字符串的形式为
0|0
10|15
30|55
等等。本质上是用竖线分隔的数字。
当我将 java 的字符串拆分函数与 .split("|") 一起使用时。我得到了一些不可预测的结果。第一个插槽中的空白,有时数字本身不在我认为应该在的位置。
任何人都可以帮助我并就如何使用 reg exp 只保留整数提供建议吗?
我被要求提供尝试进行实际拆分的代码。所以请允许我这样做,希望能进一步澄清我的问题 :)
String temp = "0|0";
String splitString = temp.split("|");
结果
\n
0
|
0
我想得到
0
0
只有。永远感谢提前提供的任何帮助:)
最佳答案
我仍然建议使用 split()
,它默认会跳过空标记。你想去掉字符串中的非数字字符,只保留管道和数字,那么你可以轻松地使用 split()
来获得你想要的。或者您可以将多个定界符传递给拆分(以正则表达式的形式),这应该有效:
String[] splited = yourString.split("[\\|\\s]+");
和正则表达式:
import java.util.regex.*;
Pattern pattern = Pattern.compile("\\d+(?=([\\|\\s\\r\\n]))");
Matcher matcher = pattern.matcher(yourString);
while (matcher.find()) {
System.out.println(matcher.group());
}
关于java - 根据定界符拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547940/