从java字符串中提取数字
我试图从以下字符串中提取数字:从java字符串中提取数字,java,regex,Java,Regex,我试图从以下字符串中提取数字: (1234-5869)|990-9797 我希望所有的数字都出现在字符串中 1234 5869 990 9797 结果==>字符串 String string="(1234-5869)|990-9797"; String onlyNumber= string.replaceAll("[^0-9]", ""); System.out.println("result==>"onlyNumber); 结果==>数组 String string="(12
(1234-5869)|990-9797
我希望所有的数字都出现在字符串中
1234
5869
990
9797
- 结果==>字符串
String string="(1234-5869)|990-9797"; String onlyNumber= string.replaceAll("[^0-9]", ""); System.out.println("result==>"onlyNumber);
- 结果==>数组
String string="(1234-5869)|990-9797"; String normalizedString= string.replaceAll("[^0-9]", ","); System.out.println(normalizedString); StringTokenizer st = new StringTokenizer(normalizedString, ","); List<String> tabNumber= new ArrayList<String>(); while (st.hasMoreElements()) { tabNumber.add((String) st.nextElement()); }
String String=“(1234-5869)| 990-9797”; 字符串normalizedString=String.replaceAll(“^0-9]”,“,”); System.out.println(normalizedString); StringTokenizer st=新的StringTokenizer(normalizedString,“,”); List tabNumber=new ArrayList(); 而(st.hasMoreElements()){ tabNumber.add((字符串)st.nextElement()); }
- 使用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
或类似的东西将它们生成字符串,并删除任何空值。在您的情况下,不需要任何正则表达式。你需要分开你的绳子。
看看这个话题:
或者,如果您希望在不拆分的情况下创建它,您可以将所有特殊字符替换为一个空格,然后使用如下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());
}
您的答案将显示在您想要的演示文稿中如果您说“我正在尝试”,您必须有一些不适合您的代码。请将其添加到问题中并解释其错误所在。
Integer[]result=Arrays.stream(“1234-5869”)990-9797.split(\\D”).filter(s->!s.isEmpty()).map(Integer::valueOf).toArray(Integer[]:new)代码>