2015-08-15 67 views
-1

我把一個codebat熱身練習轉化爲Eclipse上的程序。該練習要求取出單詞的最後一個字符並將其粘貼到單詞的前面和末尾,例如, 「貓」→「tcatt」。如何返回錯誤字符串「void方法不能返回值」?

第一次嘗試:

我開始用這組代碼,並收到錯誤「無效的方法不能返回一個值。」經過一番研究,看來只是如果只有一個主要方法,你不能返回一個值。

Scanner input = new Scanner(System.in); 

System.out.println("Enter a word: "); 

String str = input.nextLine(); // user input 

String last = str.substring(str.length() - 1); 
return last + str + last; 

第二次嘗試:

我想在這裏添加第二個方法,並在底部重命名第二串STR1,糾正重複的局部變量錯誤:

public static void main(String[] args) { 

} 

public String backAround(String str) { 

    Scanner input = new Scanner(System.in); 

    System.out.println("Enter a word: "); 

    String str1 = input.nextLine(); //user input 

    String last = str1.substring(str.length() - 1); 
    return last + str1 + last; 

這代碼現在不顯示任何錯誤,但不會顯示任何內容,因此不會接受任何用戶輸入。正確獲取用戶輸入並返回字符串的方法是什麼?

+0

「*此代碼現在顯示沒有錯誤,但不會顯示任何畫面*」爲什麼你認爲它應該顯示什麼? – Pshemo

+0

你的主要方法永遠不會調回backAround。你的主要方法什麼都不做,所以整個程序什麼都不做。 –

回答

0

您正在將功能return與簡單顯示文本回送給用戶混淆。如果你不明白的功能是,你可以通過修改main功能棒,並簡單地打印結果返回到控制檯

Scanner input = new Scanner(System.in); 

System.out.println("Enter a word: "); 

String str = input.nextLine(); // user input 
String last = str.substring(str.length() - 1); 
System.out.println(last + str + last); 
0

所以對於一個字符串的方法,返回一個字符串值。所以你必須有一個與字符串值相等的字符串,然後打印出來。

 public static void main(String[] args) { 
      Scanner input = new Scanner(System.in); 
      System.out.println("Enter a word: "); 
      String str1 = input.nextLine(); //user input 

      String result = backAround(str1); 
      System.out.print(result); 

      } 

      public String backAround(String str) { 
       String last = str.substring(str.length() - 1); 
       return last + str + last; 
     } 
0

你的問題是你的代碼是正確的,但從來沒有使用過。 將String backAround(String str)更改爲String backAround()因爲您不需要str參數,因爲它從不使用。然後加入main以下

System.out.println(backAround());

main是運行應用程序時將運行的唯一函數。通過添加System.out.println(backAround())行,你告訴你的應用程序有運行backAround功能,然後打印返回的字符串