Ich würde die eckigen Klammern [] am Anfang weglassen, indem die erste Ausschneiden und letztes Zeichen. Dann müssen Sie den String aufteilen, um alle Objekte in einem Array zu erhalten. Am Ende müssen Sie die String-Objekte in die tatsächlichen Klassen konvertieren. Sie können dies nach dem gleichen Prinzip mit den Methoden substring
und indexOf
tun.
In Bezug auf Code, würde dies wie folgt aussehen:
// the String containing all the objects
String data="[Score{id=1, value='3.5'}, Score{id=2, value='4.5'}, Score{id=3, value='2.0'}]";
// Cutting out the brackets []
data = data.substring(1, data.length - 1);
// Splitting the String to smaller pieces
// like "Score{id=1, value='3.5'}", etc
String[] array = data.split(",");
// Creating the ArrayList, where we will save the scores
List<Score> scores = new ArrayList<Score>();
for(int i=0;i<array.length;i++) {
// Creating the Score instance
Score score = new Score();
// Omitting the brackets {}
int start = array[i].indefOx("{") + 1;
int end = array[i].indefOx("}");
// Cutting out the String inside brackets {}
String temp = array[i].substring(start, end);
// We use the same principles again to get those values inside the brackets {}.
String[] tempArray = temp.split(",");
for(int j=0;j<tempArray.length;j++) {
int start = array[i].indefOx("=") + 1;
temp2 = tempArray[j].substring(start);
if(j == 0) {
score.setId(Integer.valueOf(temp2));
} else {
// To cut out the ''
score.setValue(temp2.substring(1, temp2.length));
}
}
// adding score instance to the list
scores.add(score);
}
möchte ich darauf hinweisen, dass Sie nur ich die richtigen Indizes verwendet, um überprüfen würde, wenn ich substring
und indexOf
verwendet. Wenn dieser String ohne den "Score" Teilstring wäre, könnten Sie dies einfacher umwandeln, denn dann würde der String einen JSONArray
darstellen.
Sicherlich wird eines der Tausenden von Beispielen für das Teilen von Strings Ihnen die Antwort geben. – redFIVE
'konvertieren es in arraylist type 'bedeutet? Tut mir wirklich leid, aber ich konnte deine Frage nicht beantworten. Können Sie mir bitte sagen, was die erwartete Leistung sein wird? – Bikku
Ich muss es in Array-Liste der Objekte konvertieren, die es sein sollte Liste lists = –