检查charAt是否相同(区分大小写)

时间:2015-10-13 09:47:13

标签: java char compare equals palindrome

我必须写一个方法来检查一个单词是否是回文。我可能有一种更简单的方法,但这只是基于我迄今所学到的东西。我的方法有效,除非大写字母与小写字母相比。

编辑:不是很清楚。我的方法返回大写和小写字母是相同的。但我想说它们是不同的

public static void printPalindrome(Scanner kb) {
System.out.print("Type one or more words: ");
String s = kb.nextLine();
int count = 0;
for(int i = 0; i < s.length();i++) {
    char a = s.charAt(i);
    char b = s.charAt(s.length()-(i+1));
    if (a==b) {
        count ++;
    } else {
        count = count;
    }
}
if (count == s.length()) {
    System.out.print(s + " is a palindrome!");
} else {
    System.out.print(s + " is not a palindrome.");
}
}

3 个答案:

答案 0 :(得分:3)

我建议使用稍微不同的方法,我会使用StringBuilder#reverse反转字符串,然后使用String#equalsIgnoreCase

比较两个字符串
String s = kb.nextLine();
StringBuilder sb = new StringBuilder(s).reverse();

if (s.equalsIgnoreCase(sb.toString())) {
...
} else {
...
}

答案 1 :(得分:0)

您可以通过将输入字符串转换为大写字母来解决您的问题:

String s = kb.nextLine().toUpperCase();

或者,如果您希望保留原始String的大小写,请创建一个新的String并测试它是否为回文。

String s = kb.nextLine();
String u = s.toUpperCase();
int count = 0;
for(int i = 0; i < u.length();i++) {
    char a = u.charAt(i);
    char b = u.charAt(u.length()-(i+1));
    if (a==b) {
        count ++;
    } else {
        count = count;
    }
}

答案 2 :(得分:0)

我认为你可以用它的ascii值来实现它

look this picture

然后你将你的char转换为ascii

char character = 'a';
int ascii = (int) character;

然后比较整数

相关问题