Potrzebuję móc podzielić wejściowy ciąg przecinkami, średnikami lub białymi znakami (lub mieszanką trzech). Chciałbym również traktować wiele kolejnych ograniczników w danych wejściowych jako pojedynczy separator. Oto co mam do tej pory:String.split() - pasujące wiodące puste ciąg przed pierwszym ogranicznikiem?
String regex = "[,;\\s]+";
return input.split(regex);
To działa, z wyjątkiem, gdy ciąg wejściowy zaczyna się od jednego z separatorów, przy czym pierwszy element tablicy wyników jest pusty. Nie chcę, aby mój wynik zawierał puste ciągi znaków, więc coś w stylu ",,,, ZERO ;,; ONE, DRUGIE ;," zwraca tylko tablicę z trzema elementami zawierającą napisy wielkimi literami.
Czy istnieje lepszy sposób, aby to zrobić, niż zdejmowanie wiodących znaków pasujących do mojego reg-ex przed wywołaniem String.split?
Z góry dziękuję!
Nie publikuję jako odpowiedzi, ponieważ nie pamiętam interfejsu API regex Java, ale można po prostu wyszukiwać ciągi znaków bez ograniczników zamiast podziału na ograniczniki, np. używając wyrażeń regularnych takich jak '[^,; \ s] +'. –
Podobno identyczne pytanie, nowsze, ale z lepiej zaakceptowaną odpowiedzią: https://stackoverflow.com/questions/9389503/how-to-prevent-java-lang-string-split-from-creating-a-leading-empty-string –