将字符串中的 spaces 归一化为 1 space

Normalize spaces in string to 1 space

输入字符串:input="1222 d1212 transferx 111111111 kkk 111111111111111"

超光速:

<#assign op=input?split(" ")?join("','")>${op}

当前操作:1222','','','d1212','','','','','transferx','111111111','kkk','111111111111111

预计 o/p:1222,d1212,transferx,111111111,kkk,111111111111111

如何将字符串中的 space 规范化为 1 space 以便上面的 FTL 将给出预期的 o/p

您可以使用:

<#assign op=input?split("\s+", "r")?join(",")>

split内置函数的第二个参数r表示第一个参数是正则表达式。 \s+ 正则表达式表示一个或多个 space.

我不明白你为什么先 ?split 然后 ?join。为什么不使用 ?replace

而且,这个场景怎么样:" a b c "?这将导致 ",a,b,c,"。所以,我想你想先 ?trim 你的字符串。所以:

"  a  b c "?trim?replace("\s+", ",", "r")

另请参阅: