按编号拆分字符串

时间:2013-09-20 10:49:14

标签: java string

任何人都可以帮我按号码拆分字符串 例如:“我需要5000点”是我想从该字符串中“5000”的字符串。

我尝试过很多方法:

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

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

输出:

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

任何人都可以帮我找到合适的解决方案吗?

7 个答案:

答案 0 :(得分:5)

Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher("I Need 5000 points");
while (matcher.find()) {            
    System.out.println(matcher.group());
}

答案 1 :(得分:2)

您希望拆分数字的所有内容:

String array[] = string.split("\\D+");

答案 2 :(得分: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());
        }

答案 3 :(得分:1)

试试这个。

Pattern p=Pattern.compile("\\d+");
    Matcher m=p.matcher(yourString);
    while(m.find()){
    System.out.println(m.group());
}

答案 4 :(得分:1)

你能尝试一下吗(也应该使用数字编号):

echo preg_replace("/[^0-9,.]/", "", "I Need 5000 points");

答案 5 :(得分: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

答案 6 :(得分:-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));