使用Java中的替换或提取方法从字符串中提取数字



示例:I/p:";其2 3 4 5n和ita 3 5〃;O/p:2345所以它应该从数字中删除所有空白

我在string.replace((中尝试了几个正则表达式,但都不起作用。请帮助我

我认为这可能有助于

String numbers = str.replaceAll("\D","");

您可以这样尝试。

String yourValue = "its 2 3 4 5 n and ita 3 5";
yourValue  = yourValue .replaceAll("[^0-9]", "");
System.out.println(a);

编辑:我刚刚意识到,你的问题也有点令人困惑。在我的例子中,输出将是";234535〃;,这与你在问题中所写的不同。但我认为没有一个可推广的解决方案,如果你真的想要的话,你想切断从n开始的所有东西。

如果你想从字符串中提取所有数值,那么你可以这样做:

String string = "its 2 3 4 5 n and 32.45 it's a 3 5".replace(" ","");

Pattern p = Pattern.compile("-?\d{1,3}(,?\d{2,3})*?\.?\d+|-?\d+(\.\d+)?");
List<String> list = new ArrayList<>();
Matcher m = p.matcher(str);
while (m.find()) {
list.add(m.group());
}
// Display the list contents.
System.out.println(list);

正如您所看到的,此代码可以从字符串中捕获有符号或无符号的Integer或浮点值。

有关正则表达式的解释,请参阅此链接中的工具部分。

最新更新