Mam string = "name";
Chcę przekonwertować na tablicy ciągów. Jak mam to zrobić? Czy jest jakaś wbudowana funkcja java? Mogę to zrobić ręcznie, ale szukam wbudowanej funkcji Java.
Chcę mieć tablicę, w której każdy znak ciągu będzie ciągiem. podobnie jak char 'n' będzie teraz ciągiem „n” przechowywanym w tablicy.
String[] ary = new String[] { "name" };
, jakiej operacji potrzebujesz? na przykład podział znaków?Odpowiedzi:
Aby rozpocząć zadanie,
String.split
dzieli ciągi na wyrażenie regularne, a to wyrażenie może być pustym ciągiem:Daje tablicę:
Pozbycie się pustego pierwszego wpisu pozostawiamy jako ćwiczenie dla czytelnika :-)
Uwaga: w Javie 8 pusty pierwszy element nie jest już uwzględniany.
źródło
Drugi wiersz przydziela tablicę String o długości 1. Pamiętaj, że nie musisz samodzielnie określać długości, na przykład:
zamiast tego długość jest określana przez liczbę elementów w inicjatorze. Za pomocą
tworzy tablicę o długości 3.
źródło
Zakładając, że naprawdę chcesz mieć tablicę ciągów jednoznakowych (nie a
char[]
lubCharacter[]
)1. Korzystanie z wyrażenia regularnego:
Ujemne antycypowanie o zerowej szerokości zapobiega dopasowaniu wzorca na początku danych wejściowych, więc nie otrzymasz wiodącego pustego ciągu.
2. Korzystanie z guawy :
źródło
Myślę, że po prostu nie ma takiej potrzeby, ponieważ nie będzie to prostsze niż
Oczywiście, jeśli nalegasz, możesz napisać:
[Edytuj] Jeśli chcesz ciągi jednoliterowe, możesz użyć:
Niestety s [0] będzie puste, ale po nim pojawią się litery n, a, m, e. Jeśli jest to problem, możesz użyć np. System.arrayCopy, aby pozbyć się pierwszego wpisu tablicy.
źródło
źródło
W java 8 istnieje metoda, za pomocą której można to zrobić: toCharArray ():
Z tego wynika następująca tablica:
źródło
String.charAt(0)
łańcuchów pojedynczych znaków niepotrzebnie! ;)Tablica ciągów = tablica znaków?
A może masz ciąg zawierający wiele słów, z których każde powinno być elementem tablicy?
String[] array = yourString.split(wordSeparator);
źródło
Po prostu użyj
.toCharArray()
metody w Javie:To powinno działać dobrze w Javie 8.
źródło
Konwertować na tekst
Char
?http://www.javadb.com/convert-string-to-character-array
źródło
char[]
=)Możesz użyć
string.chars().mapToObj(e -> new String(new char[] {e}));
, chociaż jest to dość długie i działa tylko z Javą 8. Oto kilka innych metod:string.split(""); (Has an extra whitespace character at the beginning of the array if used before Java 8)
string.split("|");
string.split("(?!^)");
Arrays.toString(string.toCharArray()).substring(1, string.length() * 3 + 1).split(", ");
Ostatni jest po prostu niepotrzebnie długi, to po prostu dla zabawy!
źródło
Dodatkowa metoda:
Jak już wspomniano, można dość łatwo przekonwertować oryginalną „nazwę” ciągu na tablicę znaków:
Aby kontynuować ten tok myśli, możesz następnie przekonwertować tablicę char na tablicę String:
W tym momencie twój stringArray zostanie wypełniony oryginalnymi wartościami z oryginalnego ciągu „name”. Na przykład teraz dzwonię
W tym przypadku zwróci wartość „n” (jako ciąg znaków).
źródło
Dzielenie pustego ciągu za pomocą String.split () zwraca tablicę pojedynczego elementu zawierającą pusty ciąg . W większości przypadków prawdopodobnie wolisz otrzymać pustą tablicę lub wartość null, jeśli przekazałeś wartość null, co jest dokładnie tym, co dostajesz za pomocą org.apache.commons.lang3.StringUtils.split (str) .
Inną opcją jest google guava Splitter.split () i Splitter.splitToList (), które zwracają odpowiednio iterator i listę. W przeciwieństwie do wersji Apache Splitter wyrzuci NPE na
null
:Jeśli wolisz listę niż iterator, użyj Splitter.splitToList () .
źródło
Metoda
String.split
wygeneruje pusty pierwszy, musisz go usunąć z tablicy. To jest nudne.źródło
Opierając się na tytule tego pytania, przyszedłem tutaj, aby przekonwertować ciąg znaków na tablicę podciągów podzielonych przez jakiś separator. Dodam tutaj tę odpowiedź dla innych, którzy mogą mieć to samo pytanie.
To tworzy tablicę słów, dzieląc ciąg w każdej spacji:
Tworzy to następującą tablicę:
Źródło
Przetestowano w Javie 8
źródło
tutaj jest przekonwertowanie prostego ciągu na tablicę ciągów przy użyciu metody podziału.
Wynik
źródło