2016-09-28 40 views
-4

我正在編寫一個類的代碼,我似乎無法找到該錯誤。每次我通過Java博士運行代碼時,都會遇到大約15種不同的紅色錯誤,這是我以前從未見過的。該代碼應該接受用戶輸入並且顛倒它的順序。任何幫助?這是代碼:Java用戶名和反向訂單

import java.util.Scanner; 
public class LoopsProgram 
{ 
    public static void main (String [] args) 
    { 
     Scanner stringScanner = new Scanner (System.in); 
     System.out.println ("What is your name?"); 

     String nameOfPerson = stringScanner.nextLine(); 
     System.out.println(nameOfPerson); 
     int lengthOfName = nameOfPerson.length(); 
     char beginning = nameOfPerson.charAt(lengthOfName); 
     for (int i = lengthOfName-1; i > 0; i--) { 
      beginning = nameOfPerson.charAt(i); 
      System.out.print(beginning); 
     } 
    } 
} 
+0

你可以通過這個網站。 http://javahungry.blogspot.com/2014/12/5-ways-to-reverse-string-in-java-with-example.html – halim

+0

歡迎來到Stack Overflow!爲了幫助您充分利用本網站,請閱讀我們的[SO問題清單](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)並相應地修改您的問題。 –

回答

0

char beginning = nameOfPerson.charAt(lengthOfName); - 您嘗試訪問第五索引,其中,因爲這將有指數從0到4,這就是爲什麼你得到錯誤。

嘗試此以下代碼:

import java.util.Scanner; 
class Test{ 
    public static void main (String [] args) 
    { 
     Scanner stringScanner = new Scanner (System.in); 
     System.out.println ("What is your name?"); 

     String nameOfPerson = stringScanner.nextLine(); 
     System.out.println("Name : "+nameOfPerson+" & length : "+nameOfPerson.length()); 
     int lengthOfName = nameOfPerson.length(); 
     String result = ""; 
     for (int i = lengthOfName-1; i >= 0; i--) { 
      result+=nameOfPerson.charAt(i); 
     } 
     System.out.println(result); 
    } 
} 
0
  1. 炭開頭= nameOfPerson.charAt(lengthOfName);

  2. 對(INT I = lengthOfName-1; i> 0;我 - )

在Java索引從0開始,從而在最後一個字符索引將是lengthOfName-1。 第1期

因爲條件(i> 0),For循環不會在索引零處包含字符。它應該是i> = 0。 第2期

+0

@halim,男人期待根本原因(我想)。 –