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
相关产品推荐
相关产品推荐

