/* Created on Jan 19, 2004 */
package com.quantum.util;

import java.util.Arrays;

/**
 * @author holmesbc
 */
public class StringUtil {
	
	public static String substituteString(String original, String placeHolder, String replacementValue) {
		StringBuffer buffer = new StringBuffer();
		char[] originalChars = original == null ? new char[0] : original.toCharArray();
		char[] placeHolderChars = placeHolder.toCharArray();
		char[] placeHolderComparisonArray = new char[placeHolderChars.length];
		
		for (int i = 0, length = originalChars.length; i < length; i++) {
			if (i <= length - placeHolderChars.length) {
				System.arraycopy(originalChars, i, placeHolderComparisonArray, 0, placeHolderComparisonArray.length);
				if (Arrays.equals(placeHolderComparisonArray, placeHolderChars)) {
					i += placeHolderComparisonArray.length - 1;
					buffer.append(replacementValue);
				} else {
					buffer.append(originalChars[i]);
				}
			} else {
				buffer.append(originalChars[i]);
			}
		}
		
		return original == null ? null : buffer.toString();
	}
}