java - 根据定界符拆分字符串

标签 java regex

我试图分解一个非常简单的字符串集合,这些字符串的形式为

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/

相关文章:

java - 如何在虚拟环境中使用 django-pipeline?

java - 图像类型的getter setter方法?

ruby 正则表达式不止一次找到模式

.net - 使用 .NET 中的 RegEx 规范化 Windows 路径或 URI

使用 REGEX 的 PHP ORM Mysql 排序

.net - 正则表达式 - 在字符之间获取单词

Javascript 正则表达式在 Java 中不起作用

java - Json反序列化并在启动时保存到JPA

Java 8 在使用时缺少参数::

javascript - 如何按空格分割字符串,而不是由指定字符包裹?