为什么在倒转字母时会出现ArrayIndexOutOfBoundsException?

时间:2016-08-19 14:29:12

标签: java arrays reverse indexoutofboundsexception

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]);
        }
    }
}

所以这是我的代码,但是当我运行它并输入字母时,我收到以下错误:

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

3 个答案:

答案 0 :(得分:0)

查看你的代码,其中有错误,我相信你想要做的是打印出输入字符串的反向,这可以通过这样的单个循环来实现;

X = [1,1,1,1,1,1,1,1,1,1],
Y = [1,2,3,4,5,6,7,8,9,10]
Z = [0.2, 0.33, 0.1, 0.25, 0.0, 0.9, 0.75, 0.88, 0.44, 0.95]

答案 1 :(得分:0)

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

for(int i = 9; i&gt; = 0; i ++)

import java.util。*; 班级信件 {     public static void main()     {         char [] ar = new char [10];         Scanner sc = new Scanner(System.in);         System.out.println(“输入10个字母”);         for(int i = 0; i&lt; 10; i ++)         {           ar [i] = sc.next()。charAt(0);         }         for(int i = 9; i&gt; = 0; i ++)         {             System.out.println(“反向字母是”+ ar [i]);         }     } }

答案 2 :(得分:0)

如果您想要撤消用户的String输入,那么最好使用StringBuilder类来执行此操作。

  

这是怎么做的。

String str=sc.nextLine();
String rev=new StringBuilder(str).reverse().toString();