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]);
}这样弄总是感觉不大好,有啥更好的写发吗?

解决方案 »

  1.   

    这样 可以吗 呵呵 String temp = "22235aa33ee3399cceee0088kk";
    System.out.println(temp.replaceAll("[a-zA-Z]+", ""));
      

  2.   

    顶ls的。。lz的方法已经很方便了
      

  3.   

    正则\\d*匹配
    每group一个就append到一个StringBuffer里
      

  4.   

    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);
    }
    }
    不知道是不是你要的
      

  5.   

          System.out.println(str1.replaceAll("\\d", ""));//取出所有字母
          System.out.println(str1.replaceAll("[^0-9]", ""));//取出所有数字
      

  6.   


    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());
    }
    }
      

  7.   

    String s = "123kdk*&&^o473";
    // 把不是数字的都替换成空
    s = s.replaceAll("\\D*", "");
    System.out.println(s);
      

  8.   

    [code=Java综合一下:
    两种方案:
    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]
      

  9.   


     System.out.println(str1.replaceAll("\\D", ""));//取出所有数字