Obecnie próbuję podzielić ciąg, 1128-2
aby mieć dwie oddzielne wartości. Na przykład wartość1: 1128 i wartość2: 2, dzięki czemu mogę użyć każdej wartości osobno. Próbowałem, split()
ale bezskutecznie. Czy istnieje konkretny sposób, w jaki Grails sobie z tym radzi, czy może lepszy sposób na zrobienie tego?
96
Odpowiedzi:
Próbować:
def (value1, value2) = '1128-2'.tokenize( '-' )
źródło
split
porównaniu ztokenize
tothenew.com/blog/groovy-tokenize-vs-split|
. Trzeba będzie uciec char stackoverflow.com/questions/3842537/...Jak dzwonisz
split
? Działa to tak:def values = '1182-2'.split('-') assert values[0] == '1182' assert values[1] == '2'
źródło
String extensionRemoved = filename.split("\\.")[0];
W przeciwnym razie dzielisz na wyrażenie regularne, co oznacza „dowolny znak”. Zwróć uwagę na podwójny lewy ukośnik potrzebny do utworzenia pojedynczego odwrotnego ukośnika w wyrażeniu regularnym.def (value1, value2) = '1128-2'.split('-')
powinno działać.Czy ktoś może spróbować tego w Groovy Console?
def (v, z) = '1128-2'.split('-') assert v == '1128' assert z == '2'
źródło
Możesz też:
Integer a = '1182-2'.split('-')[0] as Integer Integer b = '1182-2'.split('-')[1] as Integer //a=1182 b=2
źródło
split nie działa w ten sposób w groovie. musisz użyć tokenize ...
Zobacz dokumentację:
http://groovy-lang.org/gdk.html#split ()
źródło
dependencies { compile ('org.springframework.kafka:spring-kafka-test:2.2.7.RELEASE') { dep -> ['org.apache.kafka:kafka_2.11','org.apache.kafka:kafka-clients'].each { i -> def (g, m) = i.tokenize( ':' ) dep.exclude group: g , module: m } } }
źródło