我需要一些关于如何放入辅助方法的帮助。这是我写的辅助方法。
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将是一个回文,但大写使程序说它不是。
答案 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;
}
}