0

我收到一个字符数组,其中包含有效和无效字符。我只需要检索有效的字符。我怎样才能做到这一点 ?

char[]ch = str.toCharacterArray();
for(int i=0;i<ch.length.i++){
    if(!Character.isLetter(ch[i]))
         system.out.println("not valid");
    else  
        system.out.println("valid");
}

我认为上面的代码不起作用,因为我对字符数组中的所有有效和无效字符都无效。

通过含义字符我期待所有字母数字和特殊字符

注意:我从服务器获取值,因此字符数组包含有效和无效字符。

4

2 回答 2

1

尝试以下方法:

// assume input is not too large string
public static String extractPrintableChars(final String input) {
    String out = input;
    if(input != null) {
        char[] charArr = input.toCharArray();
        StringBuilder sb = new StringBuilder();  
        for (char ch : charArr) {
            if(Character.isDefined(ch) && !Character.isISOControl(ch)) {
                sb.append(ch);
            }
        }
        out = sb.toString();
    }
    return out;
}
于 2013-01-30T09:09:58.633 回答
0

查看 Java 中可用的 Matcher 类。我认为在没有最大上限之前循环遍历所有字符是不明智的。

/[^0-9]+/g, '' 

使用上面的正则表达式,它将清除除数字以外的所有字符并注意。根据您的需要对其进行修改。

关于普尼斯

于 2013-01-30T08:32:20.980 回答