有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java按数字分割字符串

谁能帮我把这根绳子按数字分开吗 例如:“我需要5000分”就是我想要的那根弦的“5000”

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

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

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

输出:

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

有人能帮我找到合适的解决办法吗


共 (6) 个答案

  1. # 1 楼答案

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

    你能试试这个吗(也适用于数字):

    echo preg_replace("/[^0-9,.]/", "", "I Need 5000 points");
    
  3. # 3 楼答案

    你想对所有而不是数字的内容进行拆分:

    String array[] = string.split("\\D+");
    
  4. # 4 楼答案

            String str="I Need 5000 points";
    
            Pattern p = Pattern.compile("\\d)");
            Matcher m = p.matcher(str);
            while(m.find())
            {
                System.out.println(m.group());
            }
    
  5. # 5 楼答案

    一般情况下,您可以尝试按
    str.matches("-?\\d+(\\.\\d+)?"); //match a number with optional '-' and decimal.

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

    不过,请注意上面的正则表达式机制,因为如果您使用非拉丁(即0到9)数字,它将失败。例如,阿拉伯数字

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

  6. # 6 楼答案

    试试这个

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