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

Java如何从字符串数组中提取首字母生成对应缩写数组

实现思路
  • 对输入字符串数组的每个元素按空格分割,得到单个姓名中包含的所有名、中间名、姓氏的独立字符串,即可遍历获取所有部分的首字母
  • 遍历分割后的每个单词,取首字母后拼接.,组成当前姓名的缩写
  • 把生成的缩写存入ArrayList,全部处理完成后将ArrayList转为目标字符串数组
  • 如果需要匹配示例中部分缩写末尾不带点的格式,可在单个姓名的所有首字母拼接完成后,删除最后一个.即可
完整代码实现
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class NameAbbreviationGenerator {
    public static String[] generateAbbreviation(String[] nameArray) {
        List<String> resultList = new ArrayList<>();
        // 遍历所有姓名
        for (String name : nameArray) {
            // 按空格分割姓名为多个单词
            String[] nameParts = name.split(" ");
            StringBuilder abbreviation = new StringBuilder();
            for (String part : nameParts) {
                // 取每个单词的首字母,拼接.
                abbreviation.append(part.charAt(0)).append(".");
            }
            // 若需要删除末尾的点,放开下方注释即可匹配示例格式
            // abbreviation.deleteCharAt(abbreviation.length() - 1);
            // 把生成的缩写加入ArrayList
            resultList.add(abbreviation.toString());
        }
        // ArrayList转String数组返回
        return resultList.toArray(new String[0]);
    }

    // 测试方法
    public static void main(String[] args) {
        String[] S = {"John Smith", "Alice Huntington", "George H. Baker", "Helen Z. Gordon"};
        String[] T = generateAbbreviation(S);
        // 输出验证结果
        System.out.println(Arrays.toString(T));
    }
}
运行输出

默认保留末尾点的输出:

[J.S., A.H., G.H.B., H.Z.G.]

放开删除末尾点的注释后,和示例完全一致的输出:

[J.S, A.H, G.H.B, H.Z.G]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:54:00