/**************************************************************************************
* Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. *
* http://aspectwerkz.codehaus.org *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the LGPL license *
* a copy of which has been included with this distribution in the license.txt file. *
**************************************************************************************/
import java.util.List;
import java.util.ArrayList;
/**
* Utility methods for strings.
*
* @author Jonas BonŽr
*/
public class Strings {
/**
* Replaces all occurences of a substring inside a string.
*
* @param str the string to search and replace in
* @param oldToken the string to search for
* @param newToken the string to replace newToken
* @return the new string
*/
public static String replaceSubString(final String str, final String oldToken, final String newToken) {
return replaceSubString(str, oldToken, newToken, -1);
}
/**
* Replaces all occurences of a substring inside a string.
*
* @param str the string to search and replace in
* @param oldToken the string to search for
* @param newToken the string to replace newToken
* @param max maximum number of values to replace (-1 => no maximum)
* @return the new string
*/
public static String replaceSubString(final String str, final String oldToken, final String newToken, int max) {
if ((str == null) || (oldToken == null) || (newToken == null) || (oldToken.length() == 0)) {
return str;
}
StringBuffer buf = new StringBuffer(str.length());
int start = 0;
int end = 0;
while ((end = str.indexOf(oldToken, start)) != -1) {
buf.append(str.substring(start, end)).append(newToken);
start = end + oldToken.length();
if (--max == 0) {
break;
}
}
buf.append(str.substring(start));
return buf.toString();
}
}