为什么在反转字母时会出现 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();
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();