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

Why am I getting an ArrayIndexOutOfBoundsException when reversing letters?

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)

看你的代码,里面有错误,我相信你想做的是将输入字符串的反转打印出来,这样只需要一个循环就可以实现;

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

它向您显示错误,因为您在第二个循环中犯了错误,在该循环中您用 1 (i = 1) 初始化 i,然后 运行 无限循环 (i>=0)。这就是为什么它显示错误 Index out of bound。 你应该用 i = 9 和 运行 开始你的第二个循环,直到 (i>=0).

for (int i=9; i>=0;i++)

进口java.util.*; class 个字母 { public static void main () { char[] ar = new char[10] ; 扫描仪 sc = 新扫描仪 (System.in); System.out.println("Enter 10 letters"); 对于 (int i=0; i<10;i++) { ar[i] = sc.next().charAt(0); } 对于 (int i=9; i>=0;i++) { System.out.println("the letters in reverse are"+ar[i]); } } }

如果你想反转用户输入的 String,那么最好使用 StringBuilder class 来实现。

This is how to do so.

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