反转用户使用Java输入的字符串

时间:2018-06-20 17:48:36

标签: java

我正在尝试用Java编写代码以反转用户输入的字符串,程序运行正常,没有任何错误,但是在输入字符串后按Enter,它显示错误“线程“ main”中的异常” java.lang.ArrayIndexOutOfBoundsException: 12     在javaprograms.JavaPrograms.main(JavaPrograms.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]);
  }
    }
    }

4 个答案:

答案 0 :(得分:2)

应该是

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

答案 1 :(得分:0)

数组索引从零开始。这意味着它们从0到数组的长度-1。您的for循环被减一:

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

答案 2 :(得分:0)

有多种反转字符串的方法。 https://www.geeksforgeeks.org/reverse-a-string-in-java-5-different-ways/

最简单的方法是:

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

https://ideone.com/e.js/n7j83x

import java.util.Scanner;
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 - 1; i >= 0; i--) {
   System.out.print(arr[i]);
  }
 }
}

答案 3 :(得分:0)

最简单的方法是

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