String str1="123gege34"; String[] wa = str1.split("[a-zA-Z,]+"); for (int i = 0; i < wa.length; i++) { str1=wa[i]; System.out.println("数字"+wa[i]); }这样弄总是感觉不大好,有啥更好的写发吗?
for (int i = 0; i < str1.length(); i++) { char c = str1.charAt(i); if (c <= 57 && c >= 48) {//48和57为数字的asc码 System.out.println("num " + c); } } 不知道是不是你要的
System.out.println(temp.replaceAll("[a-zA-Z]+", ""));
每group一个就append到一个StringBuffer里
char c = str1.charAt(i);
if (c <= 57 && c >= 48) {//48和57为数字的asc码
System.out.println("num " + c);
}
}
不知道是不是你要的
System.out.println(str1.replaceAll("[^0-9]", ""));//取出所有数字
public class RegexTest {
public static void main(String[] args) {
String str="123gege34";
Pattern pattern = Pattern.compile("\\d+");
Matcher m =pattern.matcher(str);
while(m.find())
System.out.println(m.group());
}
}
// 把不是数字的都替换成空
s = s.replaceAll("\\D*", "");
System.out.println(s);
两种方案:
String temp = "22235aa33ee3399cceee0088kk";
System.out.println(temp.replaceAll("[a-zA-Z]+", "")); //将字符串中所有字母用空格替代
for (int i = 0; i < str1.length(); i++) {
char c = str1.charAt(i);
if (c <= 57 && c >= 48) { //循环找出这个范围内的数,48和57为数字的asc码
System.out.println("num " + c);
}
} ][/code]
System.out.println(str1.replaceAll("\\D", ""));//取出所有数字