2016-08-19 64 views
0
import java.util.*; 
class letters 
{ 
    public static void main() 
    { 
     char[] ar = new char[10] ; 
     Scanner sc = new Scanner (System.in); 
     System.out.println("Enter 10 letters"); 
     for (int i=0; i<10;i++) 
     { 
      ar[i] = sc.next().charAt(0); 
     } 
     for (int i=1; i>=0;i++) 
     { 
      System.out.println("the letters in reverse are"+ar[i]); 
     } 
    } 
} 

所以这是我的代码,但是当我运行它,然后输入我收到以下错误的字母:为什么在反转字母时收到ArrayIndexOutOfBoundsException?

java.lang.ArrayIndexOutOfBoundsException: 10 at letters.main(letters.java:15) 

回答

0

它显示你的错误,因为你已经做了在第二循环的错误,你用1(I = 1)初始化我和你运行它的无限循环(I> = 0)。这就是为什么它向你显示错误索引超出限制。 你应该开始你的第二个循环与i = 9并运行它直到(i> = 0)。

对(INT I = 9; I> = 0; i ++在)

进口java.util中*。 类字母 { public static void main() { char [] ar = new char [10]; Scanner sc = new Scanner(System.in); System.out.println(“Enter 10 letters”); (int i = 0; i < 10; i ++) {[i] = sc.next()。charAt(0); (int i = 9; i> = 0; i ++) } System.out.println(“反向的字母是”+ ar [i]); }} }

+0

好吧,先生,我会尝试它现在 –

+0

是的,它的工作!谢谢!! –

+0

我想你是指'我 - '。这将仍然不起作用 –

0

你的代码看,也有它的错误,我相信你想要什么做的是打印输入字符串的反转,这可以通过像这样的单个循环来实现;

public class HelloWorld 
{ 
    public static void main(String[] args) 
    { 
    String name = "abcdefghij"; // your input 
    for(int i=name.length()-1; i>=0; i--) 
    { 
     System.out.print(name.charAt(i)); 
    } 
    } 
} 
+0

没有我特别不希望“ABCDEFGHIJ”作为输入,输入依赖于用户,以便它有2个循环做只有 –

+0

是的,我明白了,试着去理解这个概念字符串是字符数组,我希望你能理解,你应该做的是在上面的示例代码中用你的字符数组代替变量名。 –

+0

但是,然后先生如果我为一个朋友让这个程序让我们说,他会输入一些随机字母,这些字母不是我在程序中分配的那些字母,那么会出现运行时错误 –

0

如果妳希望用户以逆转String输入,那么最好使用StringBuilder类这样做。

This is how to do so.

String str=sc.nextLine(); 
String rev=new StringBuilder(str).reverse().toString(); 
相关问题