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

Java打印输出内容时如何去除开头的前导空格?

Java打印内容去除输出前导空格解决方案

问题原因

原代码中通过indexOf(" ")获取到的是姓名中间空格的下标,调用substring时直接从空格下标位置开始截取,就会把空格一并输出,导致最终结果两个首字母之间存在多余空格。

修复后代码

import java.util.Scanner;
import java.io.IOException;
public class InitialsProject {
    public static void main(String args[]) throws IOException {   
        Scanner scan = new Scanner(System.in);
        System.out.print("Enter your name: ");
        String name = scan.nextLine();
        char firstInitial = name.charAt(0);
        // 从空格的下一位开始截取,跳过空格
        int index = name.indexOf(" ");
        System.out.println(firstInitial + name.substring(index+1,index+2));
   }
}

优化方案(适配多空格、输入前后带空格的场景)

如果要兼容输入姓名前后有空格、中间有多个连续空格的情况,可以用字符串拆分的方式实现,逻辑更健壮:

import java.util.Scanner;
import java.io.IOException;
public class InitialsProject {
    public static void main(String args[]) throws IOException {   
        Scanner scan = new Scanner(System.in);
        System.out.print("Enter your name: ");
        // 先去除输入首尾空格,再按任意数量空格拆分
        String[] nameParts = scan.nextLine().trim().split("\\s+");
        char firstInitial = nameParts[0].charAt(0);
        char secondInitial = nameParts[1].charAt(0);
        System.out.println(firstInitial + "" + secondInitial);
   }
}

效果验证

  • 示例输入:John Doe
  • 输出结果:JD

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:45:02