字符串帮助方法

时间:2013-02-25 19:45:42

标签: java

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

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

这就是我在main方法中使用它的方法。

String help = RecursivePalindrome.helper(x);

如果我保持这样,那么在辅助方法上他们会问我一个返回值,但是如果我放了return help;那么方法就不能正确执行。如果我将helper方法更改为void,那么我无法将String帮助放在我的main方法上。

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

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

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

3 个答案:

答案 0 :(得分:2)

我认为你需要这个:

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

调用helper将返回String,其中所有字符都是小写的,并且每次出现空格或标点字符都会被删除。

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

这是我创建的一个快速的palindrom计算器,适用于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;

    }
}