2017-11-14 6 views
1

Ich habe versucht, einen String wie folgt zu konvertieren: "[1,2,3]" in eine ArrayList in Java. Was ich versucht, so weit ist Gson Bibliothek zu verwenden, um den String oben erwähnt zu konvertieren Liste:Array-artigen String in ArrayList in Java konvertieren

  1. Gson - convert from Json to a typed ArrayList<T>
  2. Convert Gson Array to Arraylist
  3. Parsing JSON array into java.util.List with Gson

aber es endet mit einer Ausnahme (I kann bei Bedarf mehr Details bereitstellen). Die erste Frage sollte eigentlich sein, ob es ein guter Ansatz ist, um eine solche Transformation zu erreichen?

+0

* Die erste Frage sollte eigentlich sein, wenn es ein guter Ansatz ist, um eine solche Transformation zu erreichen? * Ja, es ist in Ordnung. * aber es endet mit einer Ausnahme (ich kann mehr Details zur Verfügung stellen, wenn nötig). * Bitte tun. – shmosel

+0

Sie könnten die Klammern wegschneiden [] und die Zeichenfolge durch die Koma teilen. So etwas wie: String Mitarbeiter = "Smith, Katie, 3014,, 8.25,6.5 ,,, 10.75,8.5"; String delims = "[,]"; Zeichenfolge [] Token = employee.split (delims); Das Tokens-Array könnte dann leicht in eine Arraylist umgewandelt werden. – melanzane

Antwort

2

Eine nicht regex Verfahren die Klammern aus der Zeichenfolge zu entfernen sein würde und spaltete dann an den Kommas. Dann konvertiere zu einer ArrayList.

String s = "[1, 2, 3]"; 
String[] splits = s.replace("[","").replace("]","").split(","); 
ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(splits)); 
0

Ich schlage vor, Sie verwenden regulären Ausdruck, um die Zeichenfolge von "[1,2,3, ...]" zu "1,2,3, ..." und dann ue alsList() -Methode der Klasse Arrays zu konvertieren um es in eine Liste zu konvertieren.

beziehen sich die folgenden Ausschnitt

import java.util.regex.*; 
... 
... 
String str = "[1,2,3,4,5,6,7,8,9,10]"; 
str = str.replaceAll("[(*)])","$1"); 
List<String> items = Arrays.asList(str.split("\\s*,\\s*")); 
Verwandte Themen