如何放置ignoreCase

时间:2013-02-10 16:45:32

标签: java

我想忽略大写/小写,标点符号和空格。这是我想要调用它的代码:

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;
} 

3 个答案:

答案 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()方法以替换为空。