2

谁能帮我按数字拆分字符串例如:“我需要 5000 分”是我想要从该字符串中获得“5000”的字符串。

我尝试了很多方法,例如:

//split the string by RegExp:
String array = string.split(".*\\d.")

我得到了输出,但不是我所期望的

输出:

 array[0] = ""
 array[1]  ="points

谁能帮我找到合适的解决方案?

4

7 回答 7

5
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher("I Need 5000 points");
while (matcher.find()) {            
    System.out.println(matcher.group());
}
于 2013-09-20T10:53:51.703 回答
2

你想分割所有不是数字的东西:

String array[] = string.split("\\D+");
于 2013-09-20T10:52:22.937 回答
1
        String str="I Need 5000 points";

        Pattern p = Pattern.compile("\\d)");
        Matcher m = p.matcher(str);
        while(m.find())
        {
            System.out.println(m.group());
        }
于 2013-09-20T10:52:40.500 回答
1

尝试这个。

Pattern p=Pattern.compile("\\d+");
    Matcher m=p.matcher(yourString);
    while(m.find()){
    System.out.println(m.group());
}
于 2013-09-20T10:56:51.787 回答
1

你能试试这个(也应该使用数字):

echo preg_replace("/[^0-9,.]/", "", "I Need 5000 points");
于 2013-09-20T10:57:10.967 回答
0

一般来说,您可以尝试拆分
str.matches("-?\\d+(\\.\\d+)?"); //match a number with optional '-' and decimal.

尽管这不是您尝试过的方式。获取字符串[] myString.split("\\s+");,然后检查拆分后的字符串是否包含任何数字。

但是,请注意上述 RegEx 机制,因为如果您使用非拉丁(即 0 到 9)位,它将失败。例如,阿拉伯数字。

你可以看看这里 - How to check if a String is numeric in Java

于 2013-09-20T10:59:43.990 回答
-1
import java.util.regex.*;

String myString = "I Need 5000 points";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(myString);
if(matcher.find())            
    System.out.println(matcher.group(0));
于 2013-09-20T11:02:50.800 回答