我想忽略大写/小写,标点符号和空格。这是我想要调用它的代码:
public static boolean isPal(String s)
{
if(s.length() == 0 || s.length() == 1)
return true;
if(s.charAt(0) == s.charAt(s.length()-1))
return isPal(s.substring(1, s.length()-1));
return false;
}
答案 0 :(得分:5)
您可以尝试添加以下行:
s = s.toLowerCase().replaceAll("[\\p{Punct}\\s]", "");
在方法开始时。
答案 1 :(得分:1)
最简单的方法是将您的字符串转换为大写或大写,并进行所有比较,例如
public static boolean isPal(String s)
{
s = s.toLowerCase().replaceAll("[^a-z]", "");
// Or if you want to allow digits
//s = s.toLowerCase().replaceAll("[^\\w]", "");
// Do all your comparisons
}
答案 2 :(得分:1)
您可以将字符串转换为任何一种情况并将其用于处理 -
public static boolean isPal(String s) {
s = s.toLowerCase(); // or s.toUpperCase()
if(s.length() == 0 || s.length() == 1)
return true;
if(s.charAt(0) == s.charAt(s.length()-1))
return isPal(s.substring(1, s.length()-1));
return false;
}
要忽略标点符号,可以使用下面给出的正则表达式。添加您需要忽略的更多字符,并使用反斜杠\
[?:\\/\.]
将其添加到replaceAll()
方法以替换为空。