Scala的StringLike有一个方法replaceAllLiterally(literal: String, replacement: String): String
这似乎与Java的String方法String replace(CharSequence target, CharSequence replacement)
非常相似。
是否有使用Scala版本的原因?
(不需要经过正则表达式编译步骤,似乎使Java的版本更快,尽管我没有进行基准测试)
Scala的StringLike有一个方法replaceAllLiterally(literal: String, replacement: String): String
这似乎与Java的String方法String replace(CharSequence target, CharSequence replacement)
非常相似。
是否有使用Scala版本的原因?
(不需要经过正则表达式编译步骤,似乎使Java的版本更快,尽管我没有进行基准测试)
StringBuilder
上的 replace
冲突,建议不要在字符串上使用该方法。同时,StringBuilder
也是一个 StringLike
。至于为什么不修改 StringBuilder
的 replace
方法,我不确定原因。replaceAllLiterally
处理String
时会发出弃用警告,并建议改用replace
。 - ebruchez使用Scala的方法可以避免被转义字符淹没,这非常有帮助。Stack Overflow用户@pedrofurla和@rampart81在这里很好地解释了这一切。
String.replaceAll
使用正则表达式和转义字符,但String.replace
不使用。我不确定这是正确的比较。 - Louis WassermanStringOps
中也具有所有 Java 的 replace*
方法。我认为 OP 是在问什么使得独特的 Scala 方法 replaceAllLiterally
有用甚至更可取。 - Vidya