有下面一个程序:
有这样一个字符串: ssssssskkhh<a href="http://www.1ju.org">hhhh</a>bbbbbeeeee
现在想把hh 替换成xx, 但链接里面的文字不进行替换,
就变成下面这个字符串
ssssssskkxx<a href="http://www.1ju.org">hhhh</a>bbbbbeeeee
用算法怎么实现呢?
有这样一个字符串: ssssssskkhh<a href="http://www.1ju.org">hhhh</a>bbbbbeeeee
现在想把hh 替换成xx, 但链接里面的文字不进行替换,
就变成下面这个字符串
ssssssskkxx<a href="http://www.1ju.org">hhhh</a>bbbbbeeeee
用算法怎么实现呢?
解决方案 »
- java如何连接firebird桌面数据库
- 简单的问题,在线等!
- java编程中,怎么让文本域随着窗体框架变大了?
- 高分回报!java文件编译成class文件?
- 更改IP和DNS问题
- 我在用JCE解密文件时抛出一个异常,Input length must be multiple of 8 when decrypting with padded cipher,请问为什么会有这样的异常
- 悬赏帮助~~
- 请教一个Red Flag Linux4下的中文乱码问题!!
- 请大家推荐一些java方面的网站
- 有关Java程序员的问题
- 用JAVA做 求1000以内水仙花数 在线等
- 怎么在jlabel 上点下就到指定的一个网址 ??
String replaced = str.replace("ssssssskkhh", "ssssssskkxx");
String str="ssssssskkhh <a href='http://www.1ju.org'>hhhh </a>bbbbbeeeee";
for(int i=0;i<str.length();i++){
if(i>str.indexOf("<")&&i<str.lastIndexOf(">")){
sb.append(str.charAt(i));
}else if(str.charAt(i)=='h'){
sb.append('x');
}else{
sb.append(str.charAt(i));
}
}
System.out.println(sb.toString());
String pattern ="\\w*\\s*\\w*hh\\w*\\s*\\w*<(([/][^a])|([^/][\\s\\S]))";
String str = "adsfhhdd dkjojfdhdd<div>sdfshhsdfsf</div>ssssssskkhh <a href=\"http://www.1ju.org\">hhhh </a>bbbbbeeeee ";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(str);
StringBuffer sb = new StringBuffer();
while(m.find()){
m.appendReplacement(sb, m.group().replaceAll("h", "x"));
}
m.appendTail(sb);
System.out.println(sb.toString());