Replace string
/** * <pre> * Utilitaire de gestion des chaines de caractres. * </pre> * @version $Date: 2005/07/20 10:59:20 $, $Revision: 1.2 $, branche-$Name: $ * @author $Author: mlo $ */ public class StringUtils { /** * remplacement d'une chaine 'oldstr' par une autre 'newstr' * @param str chaine source * @param oldstr chaine remplacer * @param newstr chaine de remplacement * @return chaine rsultat */ public static String replace (String source, String os, String ns) { if (source == null) { return null; } int i = 0; // Make sure that oldString appears at least once before doing any processing. if ((i = source.indexOf(os, i)) >= 0) { // Use char []'s, as they are more efficient to deal with. char[] sourceArray = source.toCharArray(); char[] nsArray = ns.toCharArray(); int oLength = os.length(); StringBuilder buf = new StringBuilder (sourceArray.length); buf.append (sourceArray, 0, i).append(nsArray); i += oLength; int j = i; // Replace all remaining instances of oldString with newString. while ((i = source.indexOf(os, i)) > 0) { buf.append (sourceArray, j, i - j).append(nsArray); i += oLength; j = i; } buf.append (sourceArray, j, sourceArray.length - j); source = buf.toString(); buf.setLength (0); } return source; } /** * remplacement d'une chaine entre deux position 'start' et 'end' par value * @param str chaine source * @param start position de dpart * @param end position finale * @param value chaine de remplacement * @return chaine rsultat */ public static String replace(String str, String start, String end, String value) { int istart = str.indexOf(start); int iend = str.indexOf(end); if (istart != -1 && iend != -1) return (new StringBuffer(str.substring(0, istart)).append(value) .append(str.substring(iend + end.length())).toString()); else return str; } }