我正在尝试对String执行以下操作。
if (combatLog.contains("//*name//*")) {
combatLog.replaceAll("//*name//*",glad.target.name);
}
斜杠是我试图摆脱*的尝试,因为没有它们就无法工作。我还尝试了一个斜杠,并在contains或replaceAll上分别进行了斜杠。谢谢
最佳答案
不要忘记字符串的不变性,并重新分配新创建的字符串。另外,如果您的if
块不再包含任何代码,则根本不需要if
检查。
您有3种选择:
if (combatLog.contains("*name*")) { // don't escape in contains()
combatLog = combatLog.replaceAll("\\*name\\*", replacement);// correct escape
}
// another regex based solution
if (combatLog.contains("*name*")) {
combatLog = combatLog.replaceAll("[*]name[*]", replacement);// character class
}
或没有正则表达式
if (combatLog.contains("*name*")) {
combatLog = combatLog.replace("*name*", replacement);// literal string
}