JAVA后台给文章内容标红

CrazyMan666 2013-03-26 07:23:59
List<String> list=new ArrayList<String>();
list.add("微山县公安局");
list.add("微山县");
list.add("微山县指挥中心");
String test="阿娇快根据安康给微山县指挥中心你微山县公安局";

怎样根据list里面的存放的关键字来处理字符串test 使得输出test为:

阿娇快根据安康给<font color='red'>微山县指挥中心</font>你<font color='red'>微山县公安局</font>

我的做法是:
String newTest="";
for(String s:list){
newTest=test.replaceAll(s,"<font color='red'>"+s+"</font>");
test=newTest;
}
但是我这个只能说是理想情况 因为当关键字里面有 font标签的任意字符的时候 font标签也就被replaceall了,这个有什么好的解决办法嘛??求解
...全文
395 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianma630 2013-03-27
  • 打赏
  • 举报
回复
简单的做法 你在替换的时候先把<font color='red'>和</font>成不可能在关键字里出现的字符 比如@和# 最后在同一替换replace('@','<font color='red'>') replace('#','</font>')
坚持2012 2013-03-27
  • 打赏
  • 举报
回复
说实话没明白你到底什么意思?
  • 打赏
  • 举报
回复
判断下是否有<font标签,有就处理下,与字体属性有啥关系
CrazyMan666 2013-03-27
  • 打赏
  • 举报
回复
引用 2 楼 AARON7744 的回复:
从关键字里摘出字体属性,整合到font标签里。
关键字的字体属性不可控
CrazyMan666 2013-03-27
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
过滤下就行了。
关键字的字体属性不可控
CrazyMan666 2013-03-27
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
过滤下就行了。
怎么过滤呢?
李志遠 2013-03-27
  • 打赏
  • 举报
回复
引用 楼主 CrazyMan666 的回复:
List<String> list=new ArrayList<String>(); list.add("微山县公安局"); list.add("微山县"); list.add("微山县指挥中心"); String test="阿娇快根据安康给微山县指挥中心你微山县公安局"; 怎样根据list里面的存放的关键字来处理字符串test 使得输出test为: 阿娇快根据安康给<font color='red'>微山县指挥中心</font>你<font color='red'>微山县公安局</font> 我的做法是: String newTest=""; for(String s:list){ newTest=test.replaceAll(s,"<font color='red'>"+s+"</font>"); test=newTest; } 但是我这个只能说是理想情况 因为当关键字里面有 font标签的任意字符的时候 font标签也就被replaceall了,这个有什么好的解决办法嘛??求解
楼主的方法本身就存在问题吧。。。 替换后是这样: 阿娇快根据安康给<font color='red'>微山县</font>指挥中心<font color='red'><font color='red'>微山县</font>公安局</font> 有匹配不到的,还有重复替换的问题。 写个了笨方法:
List<String> list = new ArrayList<String>();
		list.add("微山县公安局");
		list.add("微山县");
		list.add("微山县指挥中心");
		list.add("f");
		String test = "阿娇f快根据安康给微山县指挥中心你微山县公安局";
		String newTest = "";
		
		for(int i=0; i<list.size(); i++){
			for(int j=0; j<list.size();j++){
				if(list.get(j).indexOf(list.get(i))>=0&&!list.get(j).equals(list.get(i))){
					list.set(j, list.get(j).replaceAll(list.get(i), ""));
				}
			}
		}
		
		HashSet hs = new HashSet(list);
	    list.clear();
	    list.addAll(hs);
		
		for(String s:list){
			newTest=test.replaceAll(s,"@"+s+"#");
			test=newTest;
		}
		newTest = test.replaceAll("@","<font color='red'>").replaceAll("#","</font>");
		System.out.println(newTest);
而且还有重复
-AJ- 2013-03-26
  • 打赏
  • 举报
回复
从关键字里摘出字体属性,整合到font标签里。
  • 打赏
  • 举报
回复
过滤下就行了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧