gpt4 book ai didi

java - 查找并替换唱歌。字符。在 ArrayList 元素中

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:28:48 26 4
gpt4 key购买 nike

我有兴趣遍历(重新:查找和替换目的),说:

List<String> someList = new ArrayList<String>();

其中 someList 已在较早的方法中填充,并且由,比如说几个元素组成,以这样的方式,称之为 [a:bX, b:Xc],

感兴趣的查找和替换字符串在哪里,比如:

String someString = "X";
String otherString = "Y";
String contentsTBD = "";

现在,理想情况下,我认为我可以像这样迭代 someList:

public void readAndReplace() {
for (int i = 0; i < someList.size(); i++) {
if (someList.get(i).contains(someString)) {
someList.get(i).replace(someString, otherString);
} else {
++i;
}
}
System.out.print(someList);
}

其中打印输出应为:

[a:bY, b:Yc]  

然后,我认为这可能有效:

public void readAndReplace() {
for (String s : someList) {
contentsTBD += s;
}
for (int i = 0; i < contentsTBD.length(); i++) {
if (contentsTBD.contains(someString)) {
contentsTBD.replaceAll(someString, otherString);
} else {
++i;
}
}
System.out.print(contentsTBD);
}

但很快意识到这是荒谬的,因为我对 i 的引用丢失了。任何建议都会很有帮助。谢谢。

最佳答案

  • 首先,您没有将替换字符串存储在任何地方。随风而去。

  • 其次,您的替换不会修改现有列表。您需要将新字符串设置到现有位置,因为您使用的是传统的 for 循环。 或者,您可以有一个新列表,并向该列表添加修改后的值。

  • 请记住,由于 Java 中的 String 是不可变的,因此 String 类的所有方法都返回一个新的字符串。他们不修改现有的。因此,您需要将返回的 String 重新分配给一个新的。

试试这段代码:-

 public void readAndReplace()
{
// You can also create a new list out of the existing list.
// That way, you won't need to modify the existing one.
List<String> newList = new ArrayList<String>();
for(int i = 0; i < someList .size(); i++)
{
if(someList.get(i).contains(someString))
{
newList.add(someList.get(i).replace(someString, otherString));
//someList.set(i, someList.get(i).replace(someString, otherString));
} else {

// If it not contains `someString`, add it as it is to newList
newList.add(someList.get(i));
}

}
System.out.println(someList); // Original
System.out.println(newList); // New List

}

关于java - 查找并替换唱歌。字符。在 ArrayList<String> 元素中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12852777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com