2013-02-25 185 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; 

    } 
}