如何去掉一个字符串中非英文和数字的字符?如:字符串为:paa235$&*中国82A,显示的效果为:paa23582A。急用,请帮忙!谢谢!!!

解决方案 »

  1.   

    可以使用正则表达式判断字符串中是否含有非英文和数字,再引入到java程序中进行去除
      

  2.   

    src.replaceAll("[^a-zA-Z0-9]", "")
      

  3.   

    [\u4E00-\uFA29]*----匹配中文
    [0-9]*-------匹配数字
    但是怎么把他们组装起来进行匹配不太会。等待高手解决
      

  4.   

    String str = "paa235$&*a啊";
    String str2 = str.replaceAll("[^\\d|a-z|A-Z]*", "");
    System.out.println(str2);
      

  5.   

    应该是这样:
    String str = "paa235$啊啊&*a啊";
    String str2 = str.replaceAll("[^\\da-zA-Z]*", "");
    System.out.println(str2);
      

  6.   

    那中文怎么解决呢:是这样吧?
    src.replaceAll("[\u4E00-\uFA29]", "")
      

  7.   


            String str = "paa235$&*中国82A";
            String str2 = str.replaceAll("[^a-zA-Z0-9]", "");
            System.out.println(str2);
      

  8.   


    哦,果然是,学习了!!
    不过还不太理解。API上说明
    public String replaceAll(String regex,
                             String replacement)使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串那么结果不应该是‘$&*中国’吗?------用""替换了匹配正则表达式的子串
      

  9.   


    ^ 表示非
    你可以再去看看Pattern的doc
      

  10.   

        还有个最简单的办法,
    String str = "djfh%^&*^(009中国";
    String result = str.replaceAll("\\W","");