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

如何使用indexOf()和CharAt()方法生成"B R A M"格式的缩写输出?

解决字符串转首字母缩写的问题

嘿,我来帮你搞定把"Business Requirement And Management"转成"B R A M"的需求~先看看你的原代码存在的几个问题:

  • 没有处理第一个单词的首字母,导致最终结果缺失了开头的'B'
  • 每次遇到空格时调用s.indexOf(" "),这个方法只会返回第一个空格的索引,所以后面所有的空格判断都会重复取第一个空格后的'R',结果肯定不对
  • 没有在缩写字母之间添加空格,最后输出的会是连在一起的字符,不符合要求的格式

下面给你两种符合要求(用到indexOf()和charAt())的修正方案:

方案一:遍历每个字符实现

public class Test {
    public static void main(String[] args) {
        String s = "Business Requirement And Management";
        String shortForm = "";
        
        // 先添加第一个单词的首字母
        shortForm += s.charAt(0);
        
        int i = 0;
        while(i < s.length()) {
            if(s.charAt(i) == ' ') {
                // 当前i是空格位置,直接取空格后的首字母,同时加上分隔空格
                shortForm += " " + s.charAt(i + 1);
            }
            i++;
        }
        
        System.out.println(shortForm); // 输出:B R A M
    }
}

这个方案的关键点:

  1. 一开始就把第一个单词的首字母s.charAt(0)加入结果,补上原代码缺失的部分
  2. 遍历到空格时,直接用当前的i(空格的索引)获取下一个字符,避免了indexOf()只找第一个空格的问题
  3. 每次添加首字母前先加一个空格,保证缩写格式正确

方案二:用indexOf()定位空格实现(更高效)

如果不想遍历每个字符,可以用indexOf()不断定位下一个空格的位置,这样效率更高:

public class Test {
    public static void main(String[] args) {
        String s = "Business Requirement And Management";
        StringBuilder shortForm = new StringBuilder();
        
        // 添加第一个单词的首字母
        shortForm.append(s.charAt(0));
        
        int spaceIndex = s.indexOf(" ");
        // 当找到空格时继续循环,直到indexOf返回-1(没有更多空格)
        while(spaceIndex != -1) {
            // 取空格后的首字母,加上分隔空格
            shortForm.append(" ").append(s.charAt(spaceIndex + 1));
            // 从当前空格的下一个位置开始找下一个空格
            spaceIndex = s.indexOf(" ", spaceIndex + 1);
        }
        
        System.out.println(shortForm.toString()); // 输出:B R A M
    }
}

这个方案的关键点:

  1. 用indexOf(" ")找到第一个空格,之后每次用indexOf(" ", spaceIndex + 1)定位下一个空格,避免重复查找
  2. 使用StringBuilder拼接字符串比直接用+=更高效,尤其是处理长字符串时
  3. 同样确保了每个首字母之间有空格分隔,格式完全符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:46:34