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

Java如何替换字符串数组中每个单词的首字母为A、尾字母为Z

代码错误点说明

你的代码存在3个核心问题,直接导致运行结果不符合预期:

  1. 未按需求拆分单词:你的测试数组仅包含1个元素,是一整段由6个单词组成的完整字符串,现有逻辑完全没有拆分单个单词,只会处理整段字符串的首尾,根本无法实现「每个单词单独替换首尾字母」的需求。
  2. 索引用错对象:你调用StringBuilder.replace时传入的索引是数组长度replaceFirstLetter.length,不是当前处理字符串的长度。测试场景下数组长度为1,第一次replace(0, 1, "A")确实把整段字符串的首字母J替换成了A,但第二次replace(replaceFirstLetter.length-1, replaceFirstLetter.length, "Z")等价于replace(0,1,"Z"),又把刚替换好的首字母A改成了Z,全程没有碰过字符串的尾字符。
  3. StringBuilder作用域错误:你把StringBuilder定义在循环外,一旦数组包含多个元素,会不停拼接之前处理过的内容,生成重复的脏数据。
修正方向
  • 遍历数组中每个字符串元素时,先按空格拆分出所有独立单词
  • 逐个处理单词:保留单词中间的字符,单独把首字符替换为A、尾字符替换为Z,注意处理单字符单词、空串等边界情况
  • 处理完的单词重新用空格拼接为完整字符串,存入结果数组对应位置
  • StringBuilder要定义在处理单个字符串/单词的作用域内,避免残留历史数据
修正后可运行代码
public static String[] replaceFirstLetterWithZ(String[] replaceFirstLetter) {
    String[] tempTable = new String[replaceFirstLetter.length];
    for (int i = 0; i < replaceFirstLetter.length; i++) {
        // 拆分当前字符串的所有单词
        String[] words = replaceFirstLetter[i].split(" ");
        StringBuilder stringBuilder = new StringBuilder();
        for (int j = 0; j < words.length; j++) {
            String word = words[j];
            if (word.isEmpty()) {
                stringBuilder.append(word);
            } else if (word.length() == 1) {
                // 单字符单词首尾重合,这里统一替换为A,可根据需求调整
                stringBuilder.append("A");
            } else {
                // 拼接首字母A + 单词中间部分 + 尾字母Z
                stringBuilder.append("A")
                        .append(word, 1, word.length() - 1)
                        .append("Z");
            }
            // 单词间补空格,最后一个单词后不补
            if (j != words.length - 1) {
                stringBuilder.append(" ");
            }
        }
        tempTable[i] = stringBuilder.toString();
    }
    return tempTable;
}

传入你的测试数组运行后,输出结果为:

[AavZ AoplZ ArangZ AeZ AoZ AaZ]

完全符合每个单词首字母换A、尾字母换Z的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 23:51:35