从字符串java中提取数字

时间:2018-05-15 09:20:16

标签: java regex

我正在尝试从以下字符串中提取数字:

(1234-5869)|990-9797

我希望该字符串中的所有数字都像

一样
1234
5869
990
9797 

3 个答案:

答案 0 :(得分:0)

使用replaceAll。

String str = "(1234-5869)|990-9797";

System.out.println(str.replaceAll("\\D", " ")); // " 1234 5869  990 9797"

让他们进入一个阵列:

String[] arr = str.split("\\D");

System.out.println(Arrays.toString(arr)); // [, 1234, 5869, , 990, 9797]

然后,您可以将它们变成带有循环和StringBuilder或类似内容的字符串,并修剪掉任何空值。

答案 1 :(得分:0)

在您的情况下,您不需要任何正则表达式。你需要拆分你的字符串。 看看这个主题:How to split a string in Java

或者如果你想在没有拆分的情况下制作它,你可以用一个空格替换所有重要的caractere,然后像这样使用stringTokenizer:

String str = "(1234-5869)|990-9797";
str = str.replaceAll("\\D", " ")); // " 1234 5869  990 9797"

StringTokenizer st = new StringTokenizer(str);
while (st.hasMoreTokens()) {
     System.out.println(st.nextToken());
}

您的答案将与您想要的演示文稿一起显示

答案 2 :(得分:-1)

  • 结果==>串

    return
  • 结果==>阵列

    String string="(1234-5869)|990-9797";
    String onlyNumber= string.replaceAll("[^0-9]", "");
    System.out.println("result==>"onlyNumber);