我收到的字符数组中包含有效和无效的字符。我只需要检索有效的字符。我怎么能这样做?
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");
}
我不认为上面的代码有效,因为我对字符数组中的所有有效和无效字符都无效。
通过含义字符我期待所有字母数字和特殊字符
注意:我从服务器获取值,因此字符数组包含有效和无效字符。
答案 0 :(得分: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;
}
答案 1 :(得分:0)
查看java中提供的Matcher类。我不认为循环所有角色是明智的,直到有最大上限为止。
/[^0-9]+/g, ''
使用上面的regEx它将消除除了数字之外的所有字符和注释。根据您的需要进行修改。
问候 Punith