Tenir compte de la chaîne suivante:split chaîne complexe en Java
5|12345|value1|value2|value3|value4+5|777|value1|value2|value3|value4?5|777|value1|value2|value3|value4+
Voici comment je veux diviser la chaîne, il divisé avec + donc j'obtenir ce résultat:
myArray[0] = "5|12345|value1|value2|value3|value4";
myArray[1] = "5|777|value1|value2|value3|value4?5|777|value1|value2|value3|value4";
si la chaîne a doesn ne pas contenir "?"
char divisé avec "|"
et continuer à la partie II, si la chaîne contient "?"
divisé et pour chaque partie divisé avec "|"
et continuer à la partie II.
Voici une partie II:
myObject.setAttribute1(newString[0]);
...
myObject.setAttribute4(newString[3]);
Voici ce que j'ai jusqu'à présent:
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());
}
Problème:
Lorsque je partage monTableau, creux pour aller avec monTableau [0], tout est bien monté comme il se doit.
Puis vient le myArray [1], sa scission en deux parties puis la seconde partie annule la valeur du premier (comment le savoir?). J'ai surchargé toString()
méthode de myObject, quand j'ai fini j'imprime les valeurs de set ainsi je sais qu'il l'outrepasse, est-ce que quelqu'un sait comment je peux résoudre ceci?
@mdma merci pour votre réponse, mais si cela ne tenait qu'à moi, je voudrais aussi utiliser la liste au lieu de tableau, mais je suppose que ce n'est pas une option .. désolé – ant
comment venir listes non une option? Si les listes sont réellement disponibles, il est assez facile de recoder ceci pour utiliser des tableaux, c'est juste moins de code pour utiliser des listes. – mdma
@mdma c'est ce que j'ai eu jusqu'ici j'ai juste besoin de le faire fonctionner, si ça ne tenait qu'à moi c'est vraiment plus élégant – ant