Si vous voulez convertir l'ensemble 2d-ensemble en une seule chaîne, vous pouvez utiliser un codage de type CSV, mais vous devez protéger un caractère spécial (typ. Les virgule-séparateur) afin de ne pas gâcher la séparation des champs. Un moyen rapide (et sale?) De le faire serait d'utiliser enc = URLEncoder.encode(val, "UTF-8")
sur chaque valeur, puis de retour avec val = URLDecoder.decode(enc, "UTF-8")
.
Vous aussi utiliser un autre séparateur (par exemple \n
) pour séparer les lignes:
String write(MyENum[][] myArray) {
String res = "";
for (int iRow = 0; iRow < myArray.length; iRow++) {
for (int iCol = 0; iCol < myArray[iRow].length; iCol++)
res += URLEncoder.encode(myArray[iRow][iCol].name(), "UTF-8")+",";
res += "\n";
}
}
(je vous laisse à ne pas ajouter le ","
supplémentaire à la fin de chaque ligne). Puis, à lire en arrière:
MyEnum[][] read(String res) {
String[] rows = res.split("\n");
MyEnum[][] myArray = new MyEnum[rows.length][];
for (int iRow; iRow < rows.length; iRow++) {
String[] cols = rows[iRow].split(",");
myArray[iRow] = new MyEnum[cols.length];
for (int iCol = 0; iCol < cols.length; iCol++)
myArray[iRow][iCol] = MyEnum.valueOf(URLDecoder.decode(cols[iCol], "UTF-8"));
}
return myArray;
}
C'est basé sur le fait qu'il ya des name()
et valueOf()
méthodes disponibles dans votre ENUM pour faire la transformation, comme @ sean-f vous a montré dans le poste qu'il a lié.
http://stackoverflow.com/questions/229856/ways-to-save-enums-in-database –
merci Sean mais c'est plus la conversion du tableau 2d à une chaîne et de retour je suis préoccupé par – fxfuture
pourquoi toutes les downvotes? – fxfuture