从 Java 中的字符串中提取数字
我有一个Java对象。我只需要从中提取数字。我举个例子:String
"123-456-789"
我想要"123456789"
是否有仅提取数字的库函数?
感谢您的回答。在我尝试这些之前,我需要知道我是否必须安装任何其他llibraries?
我有一个Java对象。我只需要从中提取数字。我举个例子:String
"123-456-789"
我想要"123456789"
是否有仅提取数字的库函数?
感谢您的回答。在我尝试这些之前,我需要知道我是否必须安装任何其他llibraries?
您可以使用正则表达式并删除非数字。
str = str.replaceAll("\\D+","");
这是一个更详细的解决方案。不那么优雅,但可能更快:
public static String stripNonDigits(
final CharSequence input /* inspired by seh's comment */){
final StringBuilder sb = new StringBuilder(
input.length() /* also inspired by seh's comment */);
for(int i = 0; i < input.length(); i++){
final char c = input.charAt(i);
if(c > 47 && c < 58){
sb.append(c);
}
}
return sb.toString();
}
测试代码:
public static void main(final String[] args){
final String input = "0-123-abc-456-xyz-789";
final String result = stripNonDigits(input);
System.out.println(result);
}
输出:
0123456789
顺便说一句:我没有使用Charact.isDigit(ch),因为它接受除0 - 9之外的许多其他字符。