如何从java中的string中删除非数字字符?
我有一个很长的string。 什么是正则expression式将数字拆分到数组中?
你正在消除还是分裂? 这将删除所有的非数字字符。
myStr = myStr.replaceAll( "[^\\d]", "" )
从string中删除所有非数字字符的另一种方法是:
String newString = oldString.replaceAll("[^0-9]", "");
String.split("\\D+")
你将要使用String类的Split()方法,并传递一个正则expression式“\ D +”,它将至less匹配一个非数字。
myString.split("\\D+");
另一个正则expression式解决scheme
string.replace(/\D/g,'');
Java 8集合stream :
StringBuilder sb = new StringBuilder(); test.chars().mapToObj(i -> (char) i).filter(Character::isDigit).forEach(sb::append); System.out.println(sb.toString());
这在Flex SDK 4.14.0中可用
myString.replace(/ [^ 0-9 && ^。] / g,“”);
你可以使用下面的recursion方法:
public static String getAllNumbersFromString(String input) { if (input == null || input.length() == 0) { return ""; } char c = input.charAt(input.length() - 1); String newinput = input.substring(0, input.length() - 1); if (c >= '0' && c<= '9') { return getAllNumbersFromString(newinput) + c; } else { return getAllNumbersFromString(newinput); } }
简单的方法,而不使用正则expression式:
public static String getOnlyNumerics(String str) { if (str == null) { return null; } StringBuffer strBuff = new StringBuffer(); char c; for (int i = 0; i < str.length() ; i++) { c = str.charAt(i); if (Character.isDigit(c)) { strBuff.append(c); } } return strBuff.toString(); }