从字符串中分隔数字

时间:2013-07-25 04:26:14

标签: java

我想获取给定字符串的数字,并使用下面的代码

String sample = "7011WD";
    String output = "";
    for (int index = 0; index < sample.length(); index++)
    {
        if (Character.isDigit(sample.charAt(index)))
        {
            char aChar = sample.charAt(index);
            output = output + aChar;
        }
    }

    System.out.println("output :" + output);

结果是: 输出:7011

有没有简单的方法来获得输出?

2 个答案:

答案 0 :(得分:6)

  

有没有简单的方法来获得输出

可能你可以使用正则表达式\\D+D是不是数字的任何内容,+表示一个或多个出现),然后String#replaceAll()所有非-digits with empty string:

String sample = "7011WD";
String output = sample.replaceAll("\\D+","");

虽然记得,但使用正则表达式并不高效。此外,这个正则表达式也将删除小数点!

您需要使用Integer#parseInt(output)Long#parseLong(output)分别获取原始intlong


您也可以使用Google's Guava CharMatcher。使用inRange()指定范围,并使用retainFrom()将该范围内的字符依次返回String

答案 1 :(得分:1)

您也可以使用ASCII来执行此操作

String sample = "7011WD";
String output = "";
for (int index = 0; index < sample.length(); index++)
{

        char aChar = sample.charAt(index);
        if(int(aChar)>=48 && int(aChar)<= 57)
        output = output + aChar;
    }
}

System.out.println("output :" + output);