我想检查字符串中的每个字符是否与第二个字符中的另一个字符相反。反过来我的意思是大写和小写。
例如这些字符串:
Ahh7h
aHH7H
结果将是true
我写了这段代码但结果总是false
。为什么?
public boolean checkString(String serverString, String clientString) {
if (serverString.length() != clientString.length())
return false;
else
for (int i = 0; i < clientString.length(); i++) {
if ((clientString.charAt(i) >= '0' && clientString.charAt(i) <= '9')
&& (clientString.charAt(i) != serverString.charAt(i)))
return false;
else if (clientString.charAt(i) >= 'A'
&& clientString.charAt(i) <= 'Z') {
if ((int) clientString.charAt(i) != ((int) serverString
.charAt(i) + 32))
return false;
} else if (clientString.charAt(i) >= 'a'
&& clientString.charAt(i) <= 'z') {
if ((int) clientString.charAt(i) != ((int) serverString
.charAt(i) - 32))
return false;
}
}
return true;
}
答案 0 :(得分:0)
您可以使用:How can I invert the case of a String in Java?“反转”一个字符串,然后使用字符串.equals方法来比较它们。
完整性包含How can I invert the case of a String in Java?的方法:
public static String reverseCase(String text)
{
char[] chars = text.toCharArray();
for (int i = 0; i < chars.length; i++)
{
char c = chars[i];
if (Character.isUpperCase(c))
{
chars[i] = Character.toLowerCase(c);
}
else if (Character.isLowerCase(c))
{
chars[i] = Character.toUpperCase(c);
}
}
return new String(chars);
}
答案 1 :(得分:0)
您已切换+ 32
和- 32
。
顺便说一句,使用以下方法会更容易:
Character.isDigit
Character.isLowerCase
Character.isUpperCase
Character.toLowerCase
Character.toUpperCase