我想获取给定字符串的数字,并使用下面的代码
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
有没有简单的方法来获得输出?
答案 0 :(得分:6)
有没有简单的方法来获得输出
可能你可以使用正则表达式\\D+
(D
是不是数字的任何内容,+
表示一个或多个出现),然后String#replaceAll()所有非-digits with empty string:
String sample = "7011WD";
String output = sample.replaceAll("\\D+","");
虽然记得,但使用正则表达式并不高效。此外,这个正则表达式也将删除小数点!
您需要使用Integer#parseInt(output)或Long#parseLong(output)分别获取原始int
或long
。
您也可以使用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);