从java中的字符串中删除特殊字符而不使用正则表达式

时间:2016-04-30 17:52:10

标签: java string

我想创建一个名为trim的方法。 输入字符串。 获取字符串并删除除A-Z和a-z以及0-9之外的所有字符。 例如:

String Trim("a(9d%z)");

输出:

  

a9dz

这是我写的代码:

   void Trimming(String arg1){
        String resource = "0123456789abcdefghijklmnopqrstvwxyzABCDEFGHIJKLMNOQRSTYZ";
        StringBuilder b = new StringBuilder(arg1);
        for (int i = 0; i<arg1.length() ; i++) {
            for (int j =0;j< resource.length();j++){
                if(arg1.charAt(i) != resource.charAt(j) ){
                    b.deleteCharAt(j);
                }
            }
        }

    }

使用我的方法:

  

r.Trimming( “0%ASD”);

但问题出现了:

java.lang.StringIndexOutOfBoundsException: String index out of range: 3
    at java.lang.AbstractStringBuilder.deleteCharAt(AbstractStringBuilder.java:797)
    at java.lang.StringBuilder.deleteCharAt(StringBuilder.java:253)
    at Reshte.Trimming(Reshte.java:67)
    at Reshte.main(Reshte.java:93)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

0 个答案:

没有答案