先使用trim()方法去掉Sting中所有起始和结尾的空格,然后获取一个个的char字符,根据ASCII码的值判断是否是数字。如下方法
/**
* 从 String 中提取数字
* */
public static String getNumberFromString(String string){
String str = string; //"I23love234you3423java";
str = str.trim();
StringBuffer str2 = new StringBuffer(); // 此处可以也使用StringBuffer
if(str != null && !"".equals(str)) {
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) >= 48 && str.charAt(i) <= 57) {
String s = String.valueOf(str.charAt(i));
// 为什么不用+号拼接,当然是因为+号拼接效率最慢的问题啊
str2.append(s);
}
}
}
return str2.toString();
}
上述方法中为什么不用+号拼接字符串,是因为+号拼接效率最慢啊。除了方法中使用的StringBuffer,也可以使用StringBuilder,效率很快。
详细的可以看一下这篇博客:Java 如何从String字符串中提取数字2_古时明月2333的博客-CSDN博客