/ / Can't split at dot - Velocity - java, string, velocity, atlassian, konfluence

Nie można podzielić na kropkę - Velocity - java, string, velocity, atlassian, confluence

Chciałbym podzielić datę na kropki międzydzień miesiąc rok. Na przykład: 14.01.2015 do {14, 01, 2015} Oto kod, którego użyłem: daty3.get (0) zawiera ciąg „14.01.2015”, który otrzymuję z pola tekstowego strony.

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

Tablica nic potem nie zawiera, a kiedy wypisuję $ id, po prostu wypisuje pustą linię.

Uznałem, że kiedy używam - jako separatora todziała, ale tylko dla wartości miesiąca. Muszę umieścić - na początku i na końcu, aby to działało (jak to: „-14-01-2015-”) i uzyskać indeksy 1-3, a nie 0-2, aby działało dla wszystkich trzech wartości.

Odpowiedzi:

2 dla odpowiedzi № 1

split() chce wyrażenia regularnego (regex). Kropka w wyrażeniu regularnym oznacza „dowolną postać”, dlatego musisz uciec:

.split(".")

(w przypadku ogólnego czytnika: w innych kontekstach ukośnik odwrotny musi mnie poprzedzić innym odwrotnym ukośnikiem, aby przetrwać składnię ciągów znaków: .split("\."))