replaceAll("\0",""); 
试试看如何?

解决方案 »

  1.   

    replaceAll("\0","");不行。用replaceAll("NUM","");也不行。因为我查ASCII表,ASCII为0的字符为不可见字符NUL。
      

  2.   

    那就这样吧    String str1 = "2 3 4 ";
         String str2 = str1.replaceAll( "[^\\d]", "" );
         System.out.println( str2 );
      

  3.   


    用String str2 = str1.replaceAll( "[^\\d]", "" );果然可以,不过是什么道理呢?
    我刚才用了一个笨办法:
                byte[] ss=s.getBytes();
                   int j=0;
                    for(int i=0;i<ss.length;i++)
                    {
                       int val=ss[i];
                       if(val==0)
                          j++;
                       System.out.println(val);
                       
                    }          
                    byte[] s2=new byte[ss.length-j];
                    int ji=0;
                    for(int ii=0;ii<ss.length;ii++)
                    {
                       int val=ss[ii];
                       if(val!=0)
                         {
                          s2[ji]=ss[ii];
                          ji++;
                         } 
                       
                       
                    }
                    String ssss=new String(s2);
      

  4.   

    你的那种办法是可以啊
    不过不是很推荐就是了
    因为要写很多~~~~~
    呵呵我的那种方法是正则表达式的写法
    "[^\\d]" 
    \\d 的意思是数字     ^\\d  的意思就是非数字
    那么上面的写法就是
    把所有非数字的字符都去掉明白?
      

  5.   

    如果你要保留你的英文字母
    就这样来  String str1 = "2 3 4 d";
         String str2 = str1.replaceAll( "[\\W]", "" );
         System.out.println( str2 );