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

Java实现字符串搜索复制替换功能的入门求助

Java实现字符串列表的指定修改需求

嘿,作为Java入门新手,这个需求其实很好实现,咱们一步步拆解来做就好~

首先先明确咱们要做的核心事情:

  • 遍历原始字符串列表,找出所有包含"5.9"的字符串
  • 对找到的字符串做一份拷贝,把拷贝里的"5.9"替换成"5.8",再加上标记" <-- New"
  • 把这个新生成的字符串插入到原字符串的上方(也就是原字符串在列表中的位置之前)
  • 最后输出处理后的完整列表

具体代码实现

这里用ArrayList来处理列表,因为它支持动态插入元素,非常适合这个场景。代码里我加了详细注释,方便你理解每一步:

import java.util.ArrayList;
import java.util.List;

public class StringModifier {
    public static void main(String[] args) {
        // 1. 初始化你的原始字符串列表
        List<String> stringList = new ArrayList<>();
        stringList.add("XX5.9");
        stringList.add("XX5.10");
        stringList.add("XY5.9");
        stringList.add("XY5.10");

        // 2. 倒序遍历列表(重点!避免插入元素后索引混乱)
        for (int i = stringList.size() - 1; i >= 0; i--) {
            String currentString = stringList.get(i);
            // 3. 检查当前字符串是否包含"5.9"
            if (currentString.contains("5.9")) {
                // 4. 生成新字符串:替换内容 + 添加标记
                String newString = currentString.replace("5.9", "5.8") + " <-- New";
                // 5. 在原字符串的位置之前插入新字符串
                stringList.add(i, newString);
            }
        }

        // 6. 输出最终结果
        for (String str : stringList) {
            System.out.print(str + " ");
        }
    }
}

关键细节解释

  • 为什么要倒序遍历?
    如果咱们正序遍历(从0到末尾),当在索引i插入新元素后,原来的i位置的元素会被挤到i+1的位置。接下来循环到i+1时,又会处理这个已经被处理过的原字符串,导致重复插入新元素。倒序遍历就不会有这个问题,因为处理完后面的元素后,前面的索引不会被插入操作影响。

  • 用到的核心方法:

    • contains("5.9"):检查字符串是否包含指定子串
    • replace("5.9", "5.8"):把字符串中所有的"5.9"替换成"5.8"
    • add(i, newString):在列表的指定索引位置插入新元素

运行结果

执行这段代码后,控制台会输出你想要的效果:

XX5.8 <-- New XX5.9 XX5.10 XY5.8 <-- New XY5.9 XY5.10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:08:49