我想计算我的Character数组中有多少个特殊字符。
到目前为止,这是我的代码:
String s = "hi .this :) is test +line";
int len = s.length();
Character[] array = new Character[len];
for (int i = 0; i < len ; i++)
{
if(array[i]==' ' || array[i]==':' || array[i]=='.' || array[i]=='\'' || array[i]=='\"' || array[i]==')')
special_chars++
}
答案 0 :(得分:3)
您可以使用Character
class。
if(!Character.isLetterOrDigit(array[i]) && !Character.isWhitespace(array[i]))
special_chars++;
Character.isLetterOrDigit
检查字符是字母还是数字。如果不是,那肯定是一个特殊的角色!
答案 1 :(得分:2)
创建String
个特殊字符,遍历输入中的每个字符,并检查它是否在特殊字符的String
中。像,
String s = "hi .this :) is test +line";
String spec = " :.'\")";
int special_chars = 0;
for (char ch : s.toCharArray()) {
if (spec.indexOf(ch) > -1) {
special_chars++;
}
}
答案 2 :(得分:1)
使用BitSet
,您可以有效地设置和检查索引的二进制信息(在您的情况下:给定字符是否特殊),因此与此线程中的其他解决方案相比,您不需要循环遍历特殊字符集:
BitSet specialCharacters = new BitSet();
specialCharacters.set(' ');
specialCharacters.set(':');
specialCharacters.set('.');
specialCharacters.set('\'');
specialCharacters.set('\"');
specialCharacters.set(')');
String text = "hi .this :) is test +line";
for (char c : text.toCharArray()) {
if (specialCharacters.get(c)) {
// special character detected
}
}