去掉一个字符串中的非字符,例如字符串“qwe,asd.rty;ert” 得到的结果为“qweasdrtyert”

解决方案 »

  1.   

    我是楼主,这个例子中,不允许使用java中的一些类或者包
      

  2.   

    将字符强转为数字,a-z对应数字97-122,A-Z对应65-90.剩下的就你自己来吧
      

  3.   


    public static void main(String[] args) {
    String str="qwe,asd.rty;ert";
    StringBuffer newStr=new StringBuffer();
    StringBuffer newStr2=new StringBuffer();
    byte[] arr=str.getBytes();
    for (byte b : arr) {
    //关键就是这里判断只有字母才是合法字符,添加其它合法字符继续写 || 判断即可
    if((b>=97 && b<=122) || (b>=65 && b<=90))
    newStr.append((char)b);
    else
    newStr2.append((char)b);
    }
    System.out.println("过滤后字符串:"+newStr);
    System.out.println("被过滤的字符:"+newStr2);
    }
      

  4.   

    用正则,很方便 public static void main(String[] args) {
    String s = "qwe,asd.rty;ert";
    System.out.println(s.replaceAll("[^a-zA-Z]", ""));
    }
      

  5.   

    replaceAll
    public String replaceAll(String regex,
                             String replacement)使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 
    调用此方法的 str.replaceAll(regex, repl) 形式与以下表达式产生的结果完全相同: Pattern.compile(regex).matcher(str).replaceAll(repl)
    注意,在替代字符串中使用反斜杠 (\) 和美元符号 ($) 与将其视为字面值替代字符串所得的结果可能不同;请参阅 Matcher.replaceAll。如有需要,可使用 Matcher.quoteReplacement(java.lang.String) 取消这些字符的特殊含义。 
    参数:
    regex - 用来匹配此字符串的正则表达式
    replacement - 用来替换每个匹配项的字符串 
    返回:
    所得 String 
    抛出: 
    PatternSyntaxException - 如果正则表达式的语法无效
    从以下版本开始: 
    1.4 
    另请参见:
    Pattern
      

  6.   


    public static void main(String args[]) {
         System.out.println("qwe,asd.rty;ert".replaceAll("\\W", ""));
    }
      

  7.   

    我是楼主,这个例子中,不允许使用java中的一些类或者包啪,打正则们的脸妥妥的
      

  8.   

    提供了一个 字符串又不准使用 String类提供的方法?
      

  9.   

    这问题有水平了 , 谁知道 , 不用java中的类和包  我们怎么装这个字符串?  String 本身就是java自带的类。楼主可否用C写?  
      

  10.   


    难倒是用 char[] ? 
      

  11.   

    char asd="qwe,asd.rty;ert";  不报错? 不得toString?
      

  12.   

    那请你先定义出“qwe,asd.rty;ert”这个东西来!!!那你为什么又要用String的方式,String难道不是Java中的类吗?那你又何苦用Java来处理?这不是蛋疼