Рассмотрим следующую строку:
5|12345|value1|value2|value3|value4+5|777|value1|value2|value3|value4?5|777|value1|value2|value3|value4+
Вот как я хочу разделить строку, разделить ее +, чтобы я получил такой результат:
myArray[0] = "5|12345|value1|value2|value3|value4";
myArray[1] = "5|777|value1|value2|value3|value4?5|777|value1|value2|value3|value4";
если строка не содержит символ "?"
разделить ее на "|"
и продолжить до части II, если строка содержит "?"
разделить ее и для каждой части разделить на "|"
и продолжить часть II.
Вот часть II:
myObject.setAttribute1(newString[0]);
...
myObject.setAttribute4(newString[3]);
Вот что у меня так далеко:
private static String input = "5|12345|value1|value2|value3|value4+5|777|value1|value2|value3|value4?5|777|value1|value2|value3|value4+";
public void mapObject(String input){
String[] myArray = null;
if (input.contains("+")) {
myArray = input.split("+");
} else {
myArray = new String[1];
myArray[0] = input;
}
for (int i = 0; i < myArray.length; i++) {
String[] secondaryArray = null;
String[] myObjectAttribute = null;
if (myArray[i].contains("?")) {
secondaryArray = temporaryString.myArray[i].split("?");
for (String string : secondaryArray) {
myObjectAttribute = string.split("\\|");
}
} else {
myObjectAttribute = myArray[i].toString().split("\\|");
}
myObject.setAttribute1(myObjectAttribute[0]);
...
myObject.setAttribute4(myObjectAttribute[3]);
System.out.println(myObject.toString());
}
Проблема:
Когда я разделяю myArray, пройдя через myArray [0], все настроено хорошо, как и должно быть.
Затем идет myArray [1], его разделяют на две части, а вторая переопределяет значение первой (откуда я это знаю?). Я переопределил toString()
метод myObject, когда я заканчиваю, я печатаю установленные значения, чтобы я знал, что он переопределяет, кто-нибудь знает, как я могу это исправить?