Javascript 在顺序字符上拆分Thymeleaf中的字符串

Javascript 在顺序字符上拆分Thymeleaf中的字符串,javascript,thymeleaf,Javascript,Thymeleaf,我使用Thymeleaf在多个连续字符上拆分字符串,但是我看到的结果并不是我所期望的。这是一些旧代码,我不想重写它(不是每个人都这么说吗?)。 我转储了Java字符串,它看起来像这样: string 1:-string : 2:-string -3:-string 4 然后,我的代码使用 th:with="strarray=${#strings.arraySplit(inputString, ':-')}" 我想要的是一个有4个元素的字符串[string1,string:

我使用Thymeleaf在多个连续字符上拆分字符串,但是我看到的结果并不是我所期望的。这是一些旧代码,我不想重写它(不是每个人都这么说吗?)。 我转储了Java字符串,它看起来像这样:

string 1:-string : 2:-string -3:-string 4
然后,我的代码使用

th:with="strarray=${#strings.arraySplit(inputString, ':-')}"

我想要的是一个有4个元素的字符串[string1,string:2,string-3,string-4],但是拆分显示为在冒号或连字符上拆分字符串,而不是:-作为序列字符。因此,我的数组最终为[string1,string,:,string,3,string4]。Thymeleaf文档没有任何帮助,所以我在这里询问。

我会说,理想情况下,您应该使用Java进行拆分,并将数组传递给Thymeleaf。但听起来好像你更喜欢最小化变化。因此,您可以使用以下内容:

th:with="strarray=${#strings.arraySplit(#strings.replace(inputString, ':-', '~'), '~')}"
这将用一个符号替换每个
:-
,在本例中为
~
,然后继续在该符号上拆分

这将导致
${strarray}
中出现以下4项:

string 1
string : 2
string -3
string 4

当然,这里的风险是您必须选择一个保证不会出现在原始字符串中的字符。

这对我来说很有效。我甚至认为使用瓷砖是安全的。谢谢你的建议。