Attualmente sto provando a dividere una stringa 1128-2
in modo che possa avere due valori separati ex: value1: 1128 e value2: 2 in modo che possa quindi utilizzare ciascun valore separatamente. Ho provato split()
ma senza successo. C'è un modo specifico in cui grails gestisce questo o un modo migliore di farlo?Stringa di divisione con delimitatore
risposta
Prova:
def (value1, value2) = '1128-2'.tokenize('-')
Questa è una buona lettura su 'split' vs' tokenize' http://www.tothenew.com/blog/groovy-tokenize-vs-split/ – Snekse
Oh, e stai attento se stai dividendo alcuni caratteri come un pipe '|'. Dovrai sfuggire al char http://stackoverflow.com/questions/3842537/grails-splitting-a-string-that-taintain-a-pipe – Snekse
Sì, cos split usa un'espressione regolare –
Come stai chiamando split
? Funziona in questo modo:
def values = '1182-2'.split('-')
assert values[0] == '1182'
assert values[1] == '2'
def (value1, value2) = '1128-2'.split('-')
dovrebbe funzionare.
Qualcuno può provare questo in Groovy Console?
def (v, z) = '1128-2'.split('-')
assert v == '1128'
assert z == '2'
Scusami. Puoi per favore provare la suddetta affermazione? – dmahapatro
Funziona. Bello – Giannis
scissione non funziona in questo modo in Groovy. è necessario utilizzare tokenize ...
Vedere la documentazione:
Sono curioso di sapere il motivo per cui questo non ha funzionato con un solo dividere? (a, b) = "a-b" .split ("-") funziona bene per me (e credo che funzionerebbe anche in Java). Io lo uso per tutto il tempo. EDIT: Basta guardarlo sono leggermente diversi - split restituisce un array mentre tokenize restituisce un ArrayList. Praticamente la stessa cosa in Groovy, la divisione ha il vantaggio di essere facilmente trasferibile su Java, non penso che il tokenize sia un metodo java su String (a meno che non sia abbastanza nuovo e l'ho perso) –