2016-09-28 42 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,男人期待根本原因(我想)。 –