我正在尝试用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]);
}
}
}
答案 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);