2013-02-25 186 views
0

我需要一点帮助,我可以如何放入辅助方法。这是我写的帮手法。字符串帮手方法

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

这是我如何在主要方法中使用它。

String help = RecursivePalindrome.helper(x); 

如果我把它这样便在助手方法,他们问我要返回值,但如果我把return help;则该方法不正确执行。如果我将辅助方法更改为无效,那么我不能在我的主要方法上放置字符串帮助。

这是当我运行该程序会发生什么:

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

见我把助手类忽略上面的情况,但它不会。 RaceCar将是一个回文,但大写使程序说不。

+12

你是什么意思“不正确执行”?返回'帮助'似乎是对我来说正确的方法... – 2013-02-25 19:46:50

+0

辅助方法不适用于此。帮手应该忽略大小写,并且忽略空格和标点符号,但是如果我返回帮助则不会。 – user2059140 2013-02-25 19:52:22

+1

请记住,字符串在java中是不可变的。所以你的帮助器方法确实需要返回一个字符串。 – vikingsteve 2013-02-25 19:54:17

回答

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"

2

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

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

这里是一个快速回文计算器我创建了一个为赛车.....使用AKO的helper方法的工作原理。

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; 

    } 
}