无法在点处拆分 - 速度

Can't split at dot - Velocity

我想将日期拆分为 day.month.year 之间的点。例如:14.01.2015 到 {14, 01, 2015} 这是我使用的代码: dates3.get(0) 包含我从页面的文本字段中获取的字符串“14.01.2015”。

##Splitting startingDate by point
#set($dates4 = [])
#foreach($id in $dates3.get(0).split(".")) ##BUG
#set($foo = $dates4.add($id))
$id<br>
#end

该数组之后不包含任何内容,当我打印 $id 时,它只打印一个空行。

我认为当我使用 - 作为分隔符时它有效,但仅适用于月份值。 我必须在开始和结束时放置一个 - 才能正常工作(例如:“-14-01-2015-”)并获取索引 1-3 而不是 0-2,以便它适用于所有三个值。

split() 想要一个正则表达式(regex)。正则表达式中的点代表 "any character",因此您需要转义它:

.split("\.")

(对于通用 reader:在其他情况下,反斜杠必须用另一个反斜杠转义才能在字符串语法中存活:.split("\.")