Mega Code Archive

 
Categories / Java / Data Type
 

Replace string

/**  * <pre>  * Utilitaire de gestion des chaines de caractères.  * </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 résultat     */   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 départ    * @param end position finale    * @param value chaine de remplacement    * @return chaine résultat     */   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;   }    }