1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| /**
* Découpe une chaine selon un délimiteur
*/
public static String[] explode(String str, String delim) {
final int delimLength = delim.length();
int count = 0;
int index = 0;
int endIndex = 0;
int i = 0;
// On compte le nombre de "delimiteur" :
while ( (endIndex=str.indexOf(delim, index)) >= 0) {
index = endIndex + delimLength;
count++;
}
// On ajoute un champs si le délimiteur n'est pas final :
if (index<str.length()) count++;
// On crée le tableau de résultat :
String[] result = new String[count];
i = 0;
index = 0;
// On ajoute chaque chaine dans le tableau :
while ( i<count && (endIndex=str.indexOf(delim, index)) > 0) {
result[i] = str.substring(index, endIndex);
index = endIndex + delimLength;
i++;
}
// Traitement spécial pour le texte après le dernier délimiteur :
if (i<count)
result[i] = str.substring(index);
return result;
} |