/*
* Copyright 2009 Sysmap Solutions Software e Consultoria Ltda.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/**
* @author Gesse S. F. Dafe
* @author Thiago da Rosa de Bustamante -
*/
public class Util{
/**
* @param text
* @param searchString
* @param replacement
* @return
*/
public static String replace(String text, String searchString, String replacement)
{
return replace(text, searchString, replacement, -1);
}
/**
* @param text
* @param searchString
* @param replacement
* @param max
* @return
*/
public static String replace(String text, String searchString, String replacement, int max)
{
if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0)
{
return text;
}
int start = 0;
int end = text.indexOf(searchString, start);
if (end == -1)
{
return text;
}
int replLength = searchString.length();
int increase = replacement.length() - replLength;
increase = (increase < 0 ? 0 : increase);
increase *= (max < 0 ? 16 : (max > 64 ? 64 : max));
StringBuffer buf = new StringBuffer(text.length() + increase);
while (end != -1)
{
buf.append(text.substring(start, end)).append(replacement);
start = end + replLength;
if (--max == 0)
{
break;
}
end = text.indexOf(searchString, start);
}
buf.append(text.substring(start));
return buf.toString();
}
/**
* @param value
* @return
*/
public static boolean isEmpty(String value)
{
return (value == null || value.length() == 0);
}
}