作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
String inputString = args[0];
String out2 = inputString.replaceAll("I", "you");
String out1 = out2.replaceAll("you", "I");
System.out.println(out1);
上面是main方法中的代码。它应该用“I”代替“you”,用“you”代替“I”,但只有后一个对 replaceAll() 的调用有效(如调用 out2 的调用)。运行时,我将作为输入字符串的第一个参数设置为“我讨厌你的一切”,这应该为你切换 I,反之亦然,但输出的是“我讨厌我的一切”。
有什么想法吗?
干杯
最佳答案
那是因为当你替换你
时,所有的我
都已经变成了你
。
您需要为这些类型的替换使用中间替换值才能像这样工作:
inputString = inputString.replaceAll("I", "_I_")
.replaceAll("you", "I")
.replaceAll("_I_", "you");
假设您的中间值 ("_I_"
) 不在您的字符串中。因此,您必须谨慎选择。
关于java - String.replaceAll() - 将 "I"替换为 "You",反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14913758/
我是一名优秀的程序员,十分优秀!