如何用String在Java中反转数字?代码报StringIndexOutOfBoundsException求解决
问题分析与解决
异常原因
Java中字符串的索引从0开始,假设字符串长度为n,有效索引范围是0到n-1。你的循环初始值设为number.length(),此时该索引已超出字符串的有效索引范围,调用charAt(i)时必然抛出java.lang.StringIndexOutOfBoundsException。
修正后的代码
import java.util.Scanner; public class Demo{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter a number:- "); String number = sc.next(); // 将初始i值改为number.length()-1,确保从最后一个有效索引开始遍历 for (int i = number.length() - 1; i >= 0; i--) { System.out.println(number.charAt(i)); } } }
额外说明
如果需要处理用户输入空字符串的场景(比如用户直接回车),可在循环前增加判断逻辑:
if (!number.isEmpty()) { // 执行反转遍历逻辑 } else { System.out.println("输入不能为空"); }
内容的提问来源于stack exchange,提问作者Bhushan Kadam
相关产品推荐
相关产品推荐

