最近在项目当中要用到类似javaeye的 quote功能.想了一下简单在java当中用递归实现了.
方法体如下.
public static String quote(String str) {
		String res = str;
		StringBuffer result = new StringBuffer();
		String flag = "[quote=\"";
		String endFlag = "[/quote]";
		if (str.indexOf(flag) >= 0 && str.lastIndexOf(endFlag) > 0) {
			int start = str.indexOf(flag);
			String prefix = str.substring(0, start);
			String suffix = str.substring(str.lastIndexOf(endFlag) + endFlag.length(), str.length());
			String userName = str.substring(start + flag.length(), str.indexOf("\"", start + flag.length()));
			String startStrTmp = flag + userName + "\"]";
			int startTemp = str.indexOf(startStrTmp);
			String centerStr = str.substring(startTemp + startStrTmp.length(), str.lastIndexOf(endFlag));
			result.append(prefix);
			result.append("<div class='quoteUser'>");
			result.append(userName);
			result.append("</div>");
			result.append("<div class='quoteContent'>");
			result.append(centerStr);
			result.append("</div>");
			result.append(suffix);
			return quote(result.toString());
		}else {
			return res;			
		}
	}

有更好的办法,或者在效率上有更加优化的请指点
评论
CDMA1333 2008-04-09
很精辟,要是能加上注释就完美了
发表评论

您还没有登录,请登录后发表评论

lsk
搜索本博客
存档
最新评论