Ich habe ein, das string = "name";
ich in ein String-Array konvertieren möchte. Wie mache ich es? Gibt es eine eingebaute Java-Funktion? Manuell kann ich es tun, aber ich suche nach einer in Java eingebauten Funktion.
Ich möchte ein Array, in dem jedes Zeichen der Zeichenfolge eine Zeichenfolge ist. wie char 'n' wird nun die Zeichenfolge "n" in einem Array gespeichert.
String[] ary = new String[] { "name" };
, welche Operation brauchst du? zum Beispiel Zeichen aufteilen?Antworten:
Teilen Sie
String.split
Zeichenfolgen in einen regulären Ausdruck auf, und dieser Ausdruck kann eine leere Zeichenfolge sein:Ergibt das Array:
Den leeren ersten Eintrag loszuwerden, bleibt dem Leser als Übung :-)
Hinweis: In Java 8 ist das leere erste Element nicht mehr enthalten.
quelle
In der zweiten Zeile wird ein String-Array mit der Länge 1 zugewiesen. Beachten Sie, dass Sie selbst keine Länge angeben müssen, z.
Stattdessen wird die Länge durch die Anzahl der Elemente im Initialisierer bestimmt. Verwenden von
erstellt ein Array mit einer Länge von 3.
quelle
Angenommen, Sie möchten wirklich ein Array von Zeichenfolgen mit einem Zeichen (kein
char[]
oderCharacter[]
)1. Verwenden eines regulären Ausdrucks:
Der negative Lookahead mit der Breite Null verhindert den Mustervergleich am Anfang der Eingabe, sodass Sie keine führende leere Zeichenfolge erhalten.
2. Verwenden von Guave :
quelle
Ich denke, es gibt einfach keine Notwendigkeit dafür, da es nicht einfacher wird als
Wenn Sie darauf bestehen, könnten Sie natürlich schreiben:
[Bearbeiten] Wenn Sie Zeichenfolgen mit einem Buchstaben möchten, können Sie Folgendes verwenden:
Leider ist s [0] leer, aber danach folgen die Buchstaben n, a, m, e. Wenn dies ein Problem ist, können Sie zB System.arrayCopy verwenden, um den ersten Array-Eintrag zu entfernen.
quelle
quelle
In Java 8 gibt es eine Methode, mit der Sie dies tun können: toCharArray ():
Dies führt zu folgendem Array:
quelle
String.charAt(0)
unnötigerweise Zeichen anstelle von dummen Zugriffen auf die einzelnen Zeichenfolgen benötigen ! ;)String Array = Array von Zeichen?
Oder haben Sie eine Zeichenfolge mit mehreren Wörtern, von denen jedes ein Array-Element sein sollte?
String[] array = yourString.split(wordSeparator);
quelle
In Typ konvertieren
Char
?http://www.javadb.com/convert-string-to-character-array
quelle
char[]
=)Verwenden Sie einfach die .tocharArray () -Methode in Java
Dies sollte in JAVA 8 einwandfrei funktionieren
quelle
Sie können verwenden
string.chars().mapToObj(e -> new String(new char[] {e}));
, obwohl dies ziemlich langwierig ist und nur mit Java 8 funktioniert. Hier sind einige weitere Methoden: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(", ");
Der letzte ist nur unnötig lang, nur zum Spaß!
quelle
Eine zusätzliche Methode:
Wie bereits erwähnt, können Sie den ursprünglichen String "name" ganz einfach in ein char-Array konvertieren:
Um diesen Gedankengang fortzusetzen, können Sie das char-Array in ein String-Array konvertieren:
Zu diesem Zeitpunkt wird Ihr stringArray mit den Originalwerten Ihres ursprünglichen String- "Namens" gefüllt. Zum Beispiel jetzt anrufen
Gibt in diesem Fall den Wert "n" (als Zeichenfolge) zurück.
quelle
Das Teilen einer leeren Zeichenfolge mit String.split () gibt ein einzelnes Elementarray zurück, das eine leere Zeichenfolge enthält . In den meisten Fällen würden Sie wahrscheinlich lieber ein leeres Array oder eine Null erhalten, wenn Sie eine Null übergeben haben. Genau das erhalten Sie mit org.apache.commons.lang3.StringUtils.split (str) .
Eine weitere Option ist Google Guava Splitter.split () und Splitter.splitToList (), die einen Iterator und eine Liste entsprechend zurückgeben. Im Gegensatz zur Apache-Version wirft Splitter eine NPE auf
null
:Wenn Sie eine Liste anstelle eines Iterators wünschen, verwenden Sie Splitter.splitToList () .
quelle
Methode
String.split
generiert leere 1., müssen Sie es aus dem Array entfernen. Es ist langweilig.quelle
Basierend auf dem Titel dieser Frage bin ich hierher gekommen, um einen String in ein Array von Teilzeichenfolgen umzuwandeln, die durch ein Trennzeichen getrennt sind. Ich werde diese Antwort hier für andere hinzufügen, die möglicherweise die gleiche Frage haben.
Dies ergibt eine Reihe von Wörtern, indem die Zeichenfolge an jeder Stelle aufgeteilt wird:
Dadurch wird das folgende Array erstellt:
Quelle
In Java 8 getestet
quelle
Hier müssen Sie einfache Zeichenfolgen mithilfe der Split-Methode in Zeichenfolgen-Arrays konvertieren.
Ausgabe
quelle