如果字符串是回文,我想编写一个 java 方法来返回 true。
这是我到目前为止所拥有的:
String palindrome = "...";
boolean isPalindrome = palindrome.equals(
new StringBuilder(palindrome).reverse().toString());
我的问题是它不认为像
Race car
这样的词是回文。Doc, note, I dissent. A fast never prevents a fatness. I diet on cod.
测试这是否是回文的最佳方法是什么,不区分大小写并忽略标点符号。
最佳答案
使用此正则表达式删除所有标点符号和空格并将其转换为小写
String palindrome = "..." // from elsewhere
boolean isPalindrome = palindrome.replaceAll("[^A-Za-z]", "").toLowerCase().equals(new StringBuilder(palindrome.replaceAll("[^A-Za-z]", "").toLowerCase()).reverse().toString());