1 package net.sf.statsvn.util;
2
3 public class StringUtils {
4 /**
5 * This method is a 1.4 replacement of the String.replace(CharSequence, CharSequence) found in 1.5.
6 * @param originalPattern
7 * @param newPattern
8 * @param originalString
9 * @return
10 */
11 public static String replace(final String originalPattern, final String newPattern, final String originalString) {
12 if ((originalPattern == null) || (originalPattern.length() == 0) || (originalString == null)) {
13 return originalString;
14 }
15
16 final StringBuffer newString = new StringBuffer(originalString.length());
17 int index = 0;
18 final int originalLength = originalPattern.length();
19 int previousIndex = 0;
20
21 while ((index = originalString.indexOf(originalPattern, index)) != -1) {
22 newString.append(originalString.substring(previousIndex, index)).append(newPattern);
23 index += originalLength;
24 previousIndex = index;
25 }
26
27 if (previousIndex == 0) {
28 newString.append(originalString);
29 } else if (previousIndex != originalString.length()) {
30 newString.append(originalString.substring(previousIndex));
31 }
32
33 return newString.toString();
34 }
35 }