从Java中的字符串中提取数字我有一个Java String对象。我只需从中提取数字。我举个例子:"123-456-789" 我想要 "123456789"是否有只提取数字的库函数?谢谢你的回答。在我尝试这些之前,我需要知道是否必须安装任何额外的llibraries?
3 回答

慕码人2483693
TA贡献1860条经验 获得超9个赞
这是一个更详细的解决方案。不太优雅,但可能更快:
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
顺便说一句:我没有使用Character.isDigit(ch),因为它接受除0 - 9之外的许多其他字符。

慕斯王
TA贡献1864条经验 获得超2个赞
public String extractDigits(String src) { StringBuilder builder = new StringBuilder(); for (int i = 0; i < src.length(); i++) { char c = src.charAt(i); if (Character.isDigit(c)) { builder.append(c); } } return builder.toString();}
添加回答
举报
0/150
提交
取消