在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秒 这是我的密码:在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返回
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);