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

Java实现字符串反转时保留开头前置空格的代码修改方案

保留前置空格的字符串反转实现

需求规则

  • 输入字符串开头可包含任意数量前置空格,空格数量不固定
  • 反转后所有原前置空格必须保留在结果字符串最开头,剩余非前置空格开头的内容正常反转
  • 示例:输入 Computer,输出 retupmoc

问题原因

原有实现直接对整个字符串做全量反转,会把开头的前置空格移动到结果末尾,不符合规则要求。

修改后完整代码

package BasicTesting;
import java.util.*;

public class Corrected_StringRev {

    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        System.out.print("Enter a string: ");  
        String str= sc.nextLine();        
        String reversed = reverseString(str);
        System.out.println(reversed);
        sc.close();
    }
    
    public static String reverseString(String newString) {
        // 定位第一个非空格字符的索引,拆分前置空格和待反转内容
        int firstNonSpaceIndex = 0;
        int strLen = newString.length();
        while (firstNonSpaceIndex < strLen && newString.charAt(firstNonSpaceIndex) == ' ') {
            firstNonSpaceIndex++;
        }
        String leadingSpaces = newString.substring(0, firstNonSpaceIndex);
        String needReversePart = newString.substring(firstNonSpaceIndex);

        // 仅对待反转内容做反转操作
        char[] charArr = needReversePart.toCharArray();
        StringBuilder reverseResult = new StringBuilder();
        for (int i = charArr.length - 1; i >= 0; i--) {
            reverseResult.append(charArr[i]);
        }

        // 拼接前置空格和反转后的内容返回
        return leadingSpaces + reverseResult.toString();
    }
}

实现逻辑说明

  1. 先遍历字符串找到第一个不是空格的字符位置,把字符串拆成前置空格段和实际内容段两部分
  2. 只对实际内容段执行反转操作,不改动前置空格段
  3. 最后把前置空格段放在最前面,拼接反转后的实际内容段返回,完全符合规则要求
  4. 额外补充了Scanner资源关闭的逻辑,避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:48:20