javascript - 在 Thymeleaf 中的连续字符上拆分字符串
问题描述
我正在使用 Thymeleaf 将字符串拆分为多个连续字符,但我看到的结果不是我所期望的。这是一些旧代码,我不想重写它(不是每个人都这么说吗?)。我转储了 Java 字符串,它看起来像这样:
string 1:-string : 2:-string -3:-string 4
然后我的代码使用
th:with="strarray=${#strings.arraySplit(inputString, ':-')}"
我想要的是一个带有 4 个元素的 strarray [string 1,string : 2,string -3,string -4] 但拆分似乎将字符串拆分为冒号或连字符,而不是 :- 作为连续字符。所以我的数组最终为 [string 1, string, : ,string ,3,string 4]。Thymeleaf 文档没有提供任何帮助,所以我在这里问。
解决方案
我会说理想情况下,您应该在 Java 中进行拆分,并将数组传递给 Thymeleaf。但这听起来好像您更愿意最小化更改。因此,您可以使用以下内容:
th:with="strarray=${#strings.arraySplit(#strings.replace(inputString, ':-', '~'), '~')}"
这会将每个符号替换:-
为一个符号(在这种情况下~
),然后继续拆分该单个符号。
这会在您的 中产生以下 4 项${strarray}
:
string 1
string : 2
string -3
string 4
当然这里的风险是你必须选择一个保证不会出现在原始字符串中的字符。
推荐阅读
- ios - 如何在命令中为以该字符串命名的标签使用字符串变量值?
- visual-studio-2015 - 无法在 Visual Studio 2015 中使用引用
- sql - SQL查找互惠关系
- python - 为什么再次登录我的网站后,我可以看到登录页面?
- php - Jetpack 中相关帖子的限制日期范围
- css - 网格布局:单元格未覆盖所有指定行
- javascript - 如何从 Node JS 启用 webix?
- angular - 如何在 Angular 中打印单个组件?
- python - 无法从函数中更改 var 来停止 while 循环
- javascript - jQuery-用户指定数量后添加新元素