什么是正确的方法 - 最佳实践 - 将字符串中的单词(字符序列)替换为另一个单词(字符序列),同时保留原始大小写?具体来说,如果原文全部大写,则替换词也应该是大写。如果原来的单词全部是小写,那么替换的单词也应该是小写的。如果原始字符以大写字符开头,其余字符均为小写,则替换单词也应如此。
我目前通过三个条件检查来实现这一点,这对于我的目的来说效果很好。但在我看来,必须有一种更好的“最佳实践”方式,可能但不一定是正则表达式。这意味着讨论可能的最佳或更好的实践,以启发现有的最佳实践,而不是寻求解决已经解决和实现的琐碎编码问题。
一个具体的例子。在可以在多个平台上运行的应用程序中,在移动设备上运行时,所有包含“click”的字符串都将被转换为“tap”,就像“Click”变成“Tap”,“CLICK”变成“TAP”一样。就我自己而言,我使用单词图及其替换项以更通用的方式执行此操作,但这是一个特定的示例。
最佳答案
鉴于 target
子字符串:
创建
StringBuilder
.循环
target
和replacement
并行的字符串,逐个字符。在每次迭代中,检查
target
的情况性格.添加到
StringBuilder
对应replacement
字符,改为这种情况。退出循环后,执行标准
replaceAll
的target
在原始字符串中带有toString
StringBuilder
的.
根据 target
的需要调整上述内容和replacement
是null
、空或不同长度。
关于java - 替换字符串中的单词,同时保留原始单词的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42739477/