Optimisation de remplacement de chaine de carectere
Bonjour,
J'ai une application qui tourne sous java 1.3 en prod et on a des soucis de performence sur une fonction de remplacement de chaine de caracteres.
Comme je suis en java 1.3 je ne peux pas utiliser la focntion replaceall ni les regexp.
En gros je voudrais remplacer une chaine de caractere dans un fichier de 8 à 10 Mo.
J'ai fais une fonction de remplacement mais je ne sais pas si elle est optimisée. Pouvez vous me donner votre avis ?
Code:
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 35 36 37
|
/**
*
* Retourne la chaîne de caractère identifiée par la clé.
*
* @param xml (flux contenant la chiane de caractere a remplacer.
* @param oldValue chaine de carectere a remplacer
* @param valueToReplace
* @return la chaîne associée.
*/
public static StringBuffer getString(String xml, String valueToReplace ,String oldValue) {
System.out.println("Chaine pas encore remplacer : " + xml);
StringBuffer preparedString = new StringBuffer();
StringBuffer value = new StringBuffer(xml);
int beginIndex = 0;
int endIndex;
int i = 0;
endIndex = value.toString().indexOf(oldValue, beginIndex);
System.out.println("EndIndex " + endIndex);
if( endIndex == -1 )
return value;
while (endIndex > 0) {
if (i <= valueToReplace.length()) {
preparedString.append(value.substring(beginIndex, endIndex));
preparedString.append(valueToReplace);
i++;
beginIndex = endIndex + oldValue.length();
endIndex = value.toString().indexOf(oldValue, beginIndex);
} else {
endIndex = -1;
}
}
return preparedString;
} |