public class StringReplaceUtil
{
/**
* 短信语内容替换,替换标识{}成对出现
*
* @param text
* @param begin
* @param end
* @param replaceMap
* @return
*/
public static String replaceStr(String text, char begin, char end, HashMap<String, Object> replaceMap)
{
Stack<Character> stack = new Stack<Character>();
StringBuffer sb = new StringBuffer();
int startIndex = 0;
int endIndex = -1;
String replaceStr = "";
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (c == begin) {
stack.push(c);
sb.append(text.substring(startIndex, i));
// System.out.println(sb.toString());
startIndex = i;
} else if (c == end) {
// 证明是成对出现的
if (stack.pop() == begin) {
endIndex = i;
replaceStr = text.substring(startIndex + 1, endIndex);
if (replaceStr != null) {
sb.append(replaceMap.get(replaceStr));
}
startIndex = endIndex + 1;
}
}
}
sb.append(text.substring(startIndex, text.length()));
return sb.toString();
}
}
字符串替换Util
最新推荐文章于 2023-07-05 10:00:04 发布