gpt4 book ai didi

java - replaceAll 粘贴部分不必要的额外字符串

转载 作者:行者123 更新时间:2023-11-29 04:14:42 25 4
gpt4 key购买 nike

这是我的示例 java 代码:

String oldContent = "Book 1;Author 1;11|11\n" +
"Book 2;Author 2;1|1\n" +
"Book 3;Author 3;1|1\n" +
"Book 4;Author 4;1|1\n" +
"Book 5;Author 5;1|1\n";

String old = "Book 1;Author 1;11";
String newS = "Book 1;Author 1;12|12";

String content = oldContent.replace(old,newS);

System.out.println(content);

我正在尝试用字符串的新部分 (newS) 更新 oldContent(旧)中的部分字符串。结果应该是:

Book 1;Author 1;12|12
Book 2;Author 2;1|1
Book 3;Author 3;1|1
Book 4;Author 4;1|1
Book 5;Author 5;1|1

但实际上是:

Book 1;Author 1;12|12|11
Book 2;Author 2;1|1
Book 3;Author 3;1|1
Book 4;Author 4;1|1
Book 5;Author 5;1|1

有了这些额外的 |11 。有人可以向我解释它是如何工作的以及为什么吗?我一直在尝试使用 replace()replaceAll() 但结果是一样的。

最佳答案

您正在将 Book 1;Author 1;11|11 序列替换为 Book 1;Autor 1;12|12 序列,但第一行以 结尾1:11|11。请注意一行末尾的额外 |11,它不会被处理并将附加到 Book 1;Autor 1;12|12

要完全替换您需要的第一行:

String old = "Book 1;Autor 1;11|11";
String newS = "Book 1;Autor 1;12|12";
String content = oldContent.replace(old, newS);

关于java - replaceAll 粘贴部分不必要的额外字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53119685/

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