本例是从文件输入中获取字符串,以检查语句是否为回文。例如,如果input.txt是“女士我是亚当。\n赛车\n船\n 123 321 \n 1234”,输出将是
真真假真假
下面是我的回文方法:
public static boolean isPalindrome(String word){// Source: http://www.codenuclear.com/java-program-to-check-palindrome/
String reverse = "";
if(word == null){
return false;
}else if(word.length() == 1){
return true;
}
for(int i = word.length()-1; i >= 0; i--){
reverse += word.charAt(i);
}
if(word.equalsIgnoreCase(reverse)){
return true;
}
return false;
}
到目前为止,输出是:
假真假假真假
我认为问题出在“女士我是亚当”这句话和大写字母的影响上。我如何运行代码来忽略大写字母以使回文为真?我知道有一个.equalsIgnoreUpperCase()方法或类似的方法。
发布于 2018-11-22 04:29:24
它失败是因为‘女士我是亚当’字符串中的空格、字符和字母大小写。
编辑函数以忽略这些字符和您不希望算法考虑的其他字符,或者更好的做法是,在检查字符串是否为回文之前,使用ascii验证字符串中的每个字符,然后使用toLowerCase()方法将所有字符转换为小写,它应该会按照您希望的那样工作。
https://stackoverflow.com/questions/53419815
复制相似问题