You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java文本反转功能实现求助:初学者代码运行异常排查

搞定Java文本反转输出的问题

嘿,我来帮你排查代码里的问题,然后给你靠谱的实现方案!

你的代码为啥跑不起来?

主要有两个关键问题:

  • 数组越界炸了:你写的String[] pole = {s}是个只有1个元素的数组,数组的索引只能是0(因为数组索引从0开始,长度为1的话最大索引是0)。但你的循环从i = pole.length(也就是1)开始,第一次循环就去访问pole[1],这根本不存在啊,直接就会抛出ArrayIndexOutOfBoundsException异常,程序直接崩了。
  • 逻辑没踩中需求:你想反转输入的字符串,但现在只是把整个字符串塞到数组的一个元素里,遍历数组根本没法反转字符串,得去操作字符串里的每个字符才行。

修复后的两种实现方案

方案一:手动遍历字符数组反转

import java.util.Scanner;

public class ReverseStringDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入要反转的文本:");
        String input = sc.nextLine();
        
        // 把字符串转成字符数组,方便逐个访问字符
        char[] chars = input.toCharArray();
        // 从最后一个字符开始往前遍历输出
        for (int i = chars.length - 1; i >= 0; i--) {
            System.out.print(chars[i]);
        }
        
        sc.close();
    }
}

方案二:用StringBuilder一键反转(更省心)

Java已经给我们封装好了反转字符串的工具,直接用就行:

import java.util.Scanner;

public class ReverseStringDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入要反转的文本:");
        String input = sc.nextLine();
        
        // 用StringBuilder的reverse方法直接反转,转成字符串后输出
        String reversed = new StringBuilder(input).reverse().toString();
        System.out.println(reversed);
        
        sc.close();
    }
}

简单解释下

  • 方案一:把字符串拆成单个字符的数组,从最后一个字符(索引是长度-1)开始遍历到第一个字符(索引0),逐个打印就得到反转后的内容了。
  • 方案二:StringBuilder是Java里专门用来处理字符串拼接、修改的类,它的reverse()方法可以直接把内部的字符序列反转,一行代码就能搞定,非常适合快速实现需求。

内容的提问来源于stack exchange,提问作者Ales

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:16:12