Obecnie próbuję podzielić ciąg 1128-2
, tak aby można było dwie oddzielne wartości ex: wartość1: 1128 i wartość2: 2, tak aby można następnie użyć każdej wartości osobno. Próbowałem split()
, ale bez powodzenia. Czy istnieje szczególny sposób, w jaki grails radzi sobie z tym lub lepszym sposobem na zrobienie tego?Dzielenie ciąg z ogranicznikiem
Odpowiedz
Spróbuj:
def (value1, value2) = '1128-2'.tokenize('-')
To jest dobra lektura na 'split' kontra' tokenize' http://www.tothenew.com/blog/groovy-tokenize-vs-split/ – Snekse
A, bądź ostrożny, jeśli dzielisz pewne znaki, takie jak potok '|'. Będziesz musiał uciec z char http://stackoverflow.com/questions/3842537/grails-splitting-a-string-that-contains-a-pipe – Snekse
Tak, cos split używa wyrażenia regularnego –
Jak dzwonisz split
? Działa to tak:
def values = '1182-2'.split('-')
assert values[0] == '1182'
assert values[1] == '2'
def (value1, value2) = '1128-2'.split('-')
powinien działać.
Czy ktoś może wypróbować to w konsoli Groovy?
def (v, z) = '1128-2'.split('-')
assert v == '1128'
assert z == '2'
Przepraszam. Czy możesz wypróbować powyższe stwierdzenie? – dmahapatro
To działa. Miły – Giannis
Podział nie działa w ten sposób w groovy. trzeba użyć tokenize ...
Zobacz docs:
- 1. Jak mogę podzielić ciąg z ogranicznikiem łańcucha?
- 2. Dzielenie ciąg z wielkich liter
- 3. Dzielenie ciąg z wielu miejsc
- 4. dzielenie i łączenie ciąg
- 5. Dzielenie ciąg w C#
- 6. Wiele meczów z ogranicznikiem
- 7. Podział cytowanego ciągu znaków z ogranicznikiem
- 8. Dzielenie pliku csv z cudzysłowami jako ogranicznikiem tekstowym przy użyciu String.split()
- 9. String.split() - pasujące wiodące puste ciąg przed pierwszym ogranicznikiem?
- 10. Dzielenie ciąg znaków przez spację w C
- 11. Dzielenie ciąg na/kiedy nie wewnątrz []
- 12. Dzielenie ciąg na wielu miejscach w java
- 13. javascript: dzielenie ciąg (jeszcze zachowaniu spacji)
- 14. dzielenie ciąg ale utrzymanie pustych żetony C++
- 15. Dzielenie ciąg na tablicę n słów
- 16. Dzielenie długi ciąg na mniejsze ciągi
- 17. Filtr liczbowy Angularjs z ogranicznikiem niestandardowym
- 18. Podział łańcucha Regex Java między separatorem i ogranicznikiem separacji
- 19. Tokenizer ciągów z wieloma ogranicznikami, w tym ogranicznikiem bez zwiększenia
- 20. dzielenie na znak rurki w perl
- 21. Dzielenie emoji, bezpiecznie
- 22. Dzielenie ciąg na kawałki n długości w Javie
- 23. Javascript: Dzielenie ciąg przecinkiem ale ignorowanie przecinków w cudzysłowie
- 24. Czytanie pliku tekstowego z wieloma spacjami jako ogranicznikiem w R
- 25. VueJs jak zrobić paginację z ogranicznikiem i zakresem ..?
- 26. KDTree Dzielenie
- 27. Dzielenie łańcucha znaków w Javie
- 28. Jak podzielić ciąg w CSH?
- 29. Jak podzielić ciąg przez ciąg w PowerShell
- 30. Dzielenie łańcucha z symbolem potoku jako separatorem
Jestem ciekaw, dlaczego to nie działa z tylko podzielić? (a, b) = "a-b" .split ("-") działa dobrze dla mnie (I wierzę, że to działałoby również w Javie). Używam go cały czas. EDYTOWANIE: Patrząc na to są one nieco inne - split zwraca tablicę, a tokenize zwraca tablicę ArrayList. Praktycznie to samo w Groovy, podział ma tę zaletę, że łatwo przenosi się do Javy, nie sądzę, że tokenizacja jest metodą java na łańcuchu (chyba że jest całkiem nowa i ja za nią tęsknię) –