繁体   English   中英

#strings 和标准 String 方法之间的区别

[英]Difference between #strings and standard String methods

有什么区别:

${obj.title.replaceAll(' ', '-')

和百里香特定:

${#strings.replace(obj.title, ' ', '-')}

我知道在第一个示例中我使用标准 String 方法,在第二个示例中我使用 Thymeleaf 中的 Strings 类。 哪一个是首选,为什么? 当不能使用 String 类的方法并且应该将它们替换为等效的 Strings 时,是否有任何特定情况?

以下是一些差异:

  • strings.replace第一个参数不需要是字符串,可以为空
  • strings.replace第二个参数,您正在搜索的参数,不是正则表达式,而 sdk String#replaceAll将与正则表达式一起使用

您可以找到 Thymeleaf 似乎更可取的情况,例如。 当您不想使用空检查或 toString 调用弄脏代码时。 话虽如此,我将始终使用 SDK API,因为

  • 它更广为人知并记录在案,因此新开发人员更容易理解
  • Java api 将始终以向后兼容的方式更新; Tymeleaf api 可以在未来更改实现细节,并且由于社区小得多,您不确定他们是否会专注于向后兼容性。 任何不得不在项目中升级第三方库的人都知道我在说什么。 如果有一天他们决定使用正则表达式重新实现替换方法,那么您将不得不更改代码以转义正则表达式特殊字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM