654 Stimmen

Wie konvertiert man einen kommagetrennten String in eine Liste?

Gibt es eine eingebaute Methode in Java, mit der wir kommaseparierte Strings in einen Container (z. B. Array, Liste oder Vektor) umwandeln können? Oder muss ich dafür eigenen Code schreiben?

String commaSeparated = "item1 , item2 , item3";
List<String> items = //method that converts above string into list??

1voto

Jan Stanicek Punkte 1063

Ich verwende in der Regel vorgefertigte Muster für die Liste. Und auch dies ist etwas universeller, da es Klammern berücksichtigen kann, die einige der listToString Ausdrücke folgt.

private static final Pattern listAsString = Pattern.compile("^\\[?([^\\[\\]]*)\\]?$");

private List<String> getList(String value) {
  Matcher matcher = listAsString.matcher((String) value);
  if (matcher.matches()) {
    String[] split = matcher.group(matcher.groupCount()).split("\\s*,\\s*");
    return new ArrayList<>(Arrays.asList(split));
  }
  return Collections.emptyList();

1voto

Nenad Bulatović Punkte 6948
List<String> items = Arrays.asList(s.split("[,\\s]+"));

1voto

Vijendra patidar Punkte 1365

In Kotlin, wenn Ihre String-Liste wie diese und Sie können für konvertieren String zu ArrayList verwenden Sie diese Zeile des Codes

var str= "item1, item2, item3, item4"
var itemsList = str.split(", ")

0voto

user19937169 Punkte 1

Diese Methode konvertiert Ihre Zeichenkette in ein Array und benötigt zwei Parameter: die zu konvertierende Zeichenkette und die Zeichen, die die Werte in der Zeichenkette trennen sollen. Sie konvertiert sie und gibt dann das konvertierte Array zurück.

private String[] convertStringToArray(String stringIn, String separators){

    // separate string into list depending on separators
    List<String> tempList = Arrays.asList(stringIn.split(separators));

    // create a new pre-populated array based on the size of the list
    String[] itemsArray = new String[tempList.size()];

    // convert the list to an array
    itemsArray = tempList.toArray(itemsArray);

    return itemsArray;
}

0voto

Dulith De Costa Punkte 9549

Sie können dies wie folgt tun.

Dadurch werden Leerzeichen entfernt und durch Kommata getrennt, so dass Sie sich nicht um Leerzeichen kümmern müssen.

    String myString= "A, B, C, D";

    //Remove whitespace and split by comma 
    List<String> finalString= Arrays.asList(myString.split("\\s*,\\s*"));

    System.out.println(finalString);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X