如果字符串是回文,我想编写一个 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());

10-08 08:53