谁能帮我按数字拆分字符串例如:“我需要 5000 分”是我想要从该字符串中获得“5000”的字符串。
我尝试了很多方法,例如:
//split the string by RegExp:
String array = string.split(".*\\d.")
我得到了输出,但不是我所期望的
输出:
array[0] = ""
array[1] ="points
谁能帮我找到合适的解决方案?
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher("I Need 5000 points");
while (matcher.find()) {
System.out.println(matcher.group());
}
你想分割所有不是数字的东西:
String array[] = string.split("\\D+");
String str="I Need 5000 points";
Pattern p = Pattern.compile("\\d)");
Matcher m = p.matcher(str);
while(m.find())
{
System.out.println(m.group());
}
尝试这个。
Pattern p=Pattern.compile("\\d+");
Matcher m=p.matcher(yourString);
while(m.find()){
System.out.println(m.group());
}
你能试试这个(也应该使用数字):
echo preg_replace("/[^0-9,.]/", "", "I Need 5000 points");
一般来说,您可以尝试拆分
str.matches("-?\\d+(\\.\\d+)?"); //match a number with optional '-' and decimal.
尽管这不是您尝试过的方式。获取字符串[] myString.split("\\s+");
,然后检查拆分后的字符串是否包含任何数字。
但是,请注意上述 RegEx 机制,因为如果您使用非拉丁(即 0 到 9)位,它将失败。例如,阿拉伯数字。
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));