我正在尝试从以下字符串中提取数字:
(1234-5869)|990-9797
我希望该字符串中的所有数字都像
一样1234
5869
990
9797
答案 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);