对一串字符串进行进行替换,如何完成,请大家帮助

sinntyoukai 2008-05-09 10:55:40
我把一篇文章赋给一个字符串 String str;

我需要进行替换,要求按照指定的规则进行替换,比如所有的词语能用近义词表示的就替换成近义词,如:“快速修改计算机的注册表”,替换成“迅速修改电脑的注册表”,把“快速”替换成了“迅速”,“计算机”替换成了“电脑”,等等,最好之前能先定义一个需要替换的近义词表,然后遍历整个字符串把所有能替换的都替换掉。

由于我网站大量采集的信息,百度修改算法之后大量封杀采集站,拒绝收录,我本来想用人工的方法一一修改替换,但是动辄10几万个页面人工替换会累死的,才出此下策,不知道java能不能实现?

...全文
114 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
anqini 2008-05-11
  • 打赏
  • 举报
回复
首先你有这个近义词的数据!
没有数据,谁知道怎么替换呢,一个词对应的近义词又不是唯一的!
你首先得保证有定下来的数据!
taotaonwsuaf 2008-05-10
  • 打赏
  • 举报
回复
刚做了个小程序, 看一下, 虽然小,但应该能实现你要的功能:

public class replace
{
public static void main(String[] args)
{
String str = "abcfjdkabcfjdkabcfjdk";//内容

String str1 = "abc";//待替换内容
String str2 = "****";//替换内容

System.out.println(str);//输出原来内容

StringBuilder sb = new StringBuilder(str);

for (int i = 0; i < sb.length()-3; i++)//替换过程
{
if (sb.substring(i, i+3).equals(str1))
{
sb.delete(i, i+3);
sb.insert(i, str2);
i += str2.length() - str1.length();
}
}

System.out.println(sb.toString());//输出替换后内容
}
}
palm_civet 2008-05-10
  • 打赏
  • 举报
回复
大家没看明白楼主的意思吧,光用正则是不行的。首先要保证替换好的句子和原句的意思是一样的,这样就要建立一个数据库,然后根据语境来分析(怎么分析我也不太清楚,ieee上查查,好像是用图来实现的,相当复杂)。分析完成后才能替换
jixingzhong 2008-05-10
  • 打赏
  • 举报
回复
得先定义这个近义词表

或者,写N个string.replace语句 ...
老紫竹 2008-05-10
  • 打赏
  • 举报
回复
str.replace("快速","迅速");

只可惜,每个关键字需要一个一个的循环替换了。
gyd1 2008-05-09
  • 打赏
  • 举报
回复
考虑一下正则表达式吧!具体的我也没做过!~
枫叶rain 2008-05-09
  • 打赏
  • 举报
回复
用字符串的替换就可以了
anqini 2008-05-09
  • 打赏
  • 举报
回复
写个EL表达式,replaceAll吧,
KKK2007 2008-05-09
  • 打赏
  • 举报
回复
正则

62,614

社区成员

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

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