在Java中反转用户输入的字符串

在Java中反转用户输入的字符串,java,Java,我正在尝试用java编写代码,以反转用户输入的字符串。程序运行正常,没有任何错误,但当我在输入字符串后按enter键时,线程main java.lang.ArrayIndexOutOfBoundsException中显示错误异常:12 在javaprograms.javaprograms.mainJavaPrograms.java:16 C:\Users\hp\AppData\Local\NetBeans\Cache\8.2\executor snippets\run.xml:53:Java返回

我正在尝试用java编写代码,以反转用户输入的字符串。程序运行正常,没有任何错误,但当我在输入字符串后按enter键时,线程main java.lang.ArrayIndexOutOfBoundsException中显示错误异常:12 在javaprograms.javaprograms.mainJavaPrograms.java:16 C:\Users\hp\AppData\Local\NetBeans\Cache\8.2\executor snippets\run.xml:53:Java返回:1 生成失败总时间:8秒

这是我的密码:

   package javaprograms;
   import java.util.Scanner;
   public class JavaPrograms {
   public static void main(String[] args) {
   Scanner s=new Scanner(System.in);
   String str;
   int length;
   System.out.println("Enter String: ");
   str=s.nextLine();
   length=str.length();
   char[] arr;
   arr=str.toCharArray();
   for(int i=length ; i>0 ; i--)
  {
          System.out.print(arr[i]);
  }
    }
    }
应该是

for(int i=length-1 ; i>=0 ; i--)

数组索引是从零开始的。这意味着它们从0到数组的长度-1。您的for循环已关闭1:

for (int i = length - 1; i >= 0; i--)
{
    System.out.print(arr[i]);
}

有多种方法可以反转字符串。

最简单的方法是:

    char[] try1 = input.toCharArray(); 
    for (int i = try1.length-1; i>=0; i--)
        System.out.print(try1[i]);

最简单的方法是

string reversed = new StringBuilder(str).reverse().toString();
System.out.print(reversed);

数组索引从0开始到大小-1,您需要从长度-1迭代到0,所以更改为forint i=length-1;i>=0;i-如果字符串的大小为12,则该字符串的最大索引长度为11-1,因为第一个索引为0。0到11总共是12个字符。或者仅System.out.printlnnew StringBuilderStrr.reverse;提示:你希望别人花时间帮助你解决问题。因此,请您花几秒钟时间正确格式化/缩进您的问题。缩进很重要,预览窗口的存在是有原因的。这样您就可以在点击提交按钮之前评估输入的质量。
string reversed = new StringBuilder(str).reverse().toString();
System.out.print(reversed);