java - 替换字符串中的单词,同时保留原始单词的大小写

标签 java

什么是正确的方法 - 最佳实践 - 将字符串中的单词(字符序列)替换为另一个单词(字符序列),同时保留原始大小写?具体来说,如果原文全部大写,则替换词也应该是大写。如果原来的单词全部是小写,那么替换的单词也应该是小写的。如果原始字符以大写字符开头,其余字符均为小写,则替换单词也应如此。

我目前通过三个条件检查来实现这一点,这对于我的目的来说效果很好。但在我看来,必须有一种更好的“最佳实践”方式,可能但不一定是正则表达式。这意味着讨论可能的最佳或更好的实践,以启发现有的最佳实践,而不是寻求解决已经解决和实现的琐碎编码问题。

一个具体的例子。在可以在多个平台上运行的应用程序中,在移动设备上运行时,所有包含“click”的字符串都将被转换为“tap”,就像“Click”变成“Tap”,“CLICK”变成“TAP”一样。就我自己而言,我使用单词图及其替换项以更通用的方式执行此操作,但这是一个特定的示例。

最佳答案

鉴于 target子字符串:

  • 创建 StringBuilder .

  • 循环targetreplacement并行的字符串,逐个字符。

  • 在每次迭代中,检查 target 的情况性格​.

  • 添加到 StringBuilder对应replacement字符,改为这种情况。

  • 退出循环后,执行标准 replaceAlltarget在原始字符串中带有 toString StringBuilder的.

根据 target 的需要调整上述内容和replacementnull 、空或不同长度。

关于java - 替换字符串中的单词,同时保留原始单词的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42739477/

相关文章:

java - 运行时异常 : Unknown comparator 'CompositeType'

Java 和 Cucumber + Ivy

java - 将 Derby 数据库导出为 sql 文件

java - 属性文件键中不含 "\"的空格字符

java - 在没有 toString() 的情况下将 StringBuilder 写入 Writer

java - 转换应用程序上下文会出现不可转换的类型错误

java - Apache Tomcat 应用程序中的相对文件路径引用

java - Spring 安全 : Cannot call sendRedirect() after the response has been committed

java - 如何保持前景图像的纵横比?

java - 用局部变量计数的递归函数