0

我需要一些关于如何放入辅助方法的帮助。这是我写的辅助方法。

public static String helper(String help) {
    help = help.toLowerCase();
    help = help.replaceAll("\\s+", "");
}

这就是我在主要方法中使用它的方式。

String help = RecursivePalindrome.helper(x);

如果我保持这样,那么在辅助方法上,他们会要求我提供返回值,但是如果我放了,return help;那么该方法将无法正确执行。如果我将辅助方法更改为 void,那么我不能将字符串帮助放在我的主要方法上。

这是我运行程序时发生的情况:

Enter a word to test whether it is a palindrome or not(press quit to end.): RaceCar
'RaceCar' is not a palindrome.

看到我把助手类忽略了大写,但它不会。RaceCar 将是一个回文,但大写使程序说它不是。

4

3 回答 3

2

我认为你需要这个:

public static String helper(String help) {
    help = help.toLowerCase();
    help = help.replaceAll("\\s+", "");
    help = help.replaceAll("\\p{Punct}", "");
    return help;
}

调用helper将返回 aString所有字符都小写并删除所有出现的空格或标点字符。

示例:helper("Race Car#")将返回"racecar"

于 2013-02-25T20:15:02.900 回答
2

您的方法应该返回字符串。Java中的String也是不可变的,对字符串的任何修改都会返回新的字符串。尝试这个:

public static String helper(String help) {
    return help.toLowerCase().replaceAll("\\s+", "");
}
于 2013-02-25T20:26:41.147 回答
0

这是我创建的一个快速回文计算器,适用于 RaceCar .....使用 ako 的辅助方法。

public class Main {

    public static void main(String [] args){
         System.out.println(palindrom(helper("RaceCar")));
    }

    public static String helper(String help){
         return help.toLowerCase().replaceAll("\\s+", "");
    }

    public static boolean palindrom(String pal)
    {
        int end = pal.length()-1;
        for(int i = 0; i<=pal.length()/2;i++)
        {
            if(pal.charAt(i)== pal.charAt(end-i));
            else 
            {
                return false;
            } 
        }
        return true;

    }
}
于 2013-02-25T21:07:16.820 回答