一个很头痛的字符串替换问题 想了很久也没有想出来怎么解决字符:
国务院《盐业管理条例》第二十条,国务院《食盐专营办法》第十条、第十一条,《海南省盐业管理条例》第二十六条
替换成:
国务院《<A HREF='http://admin/law/index.asmx/GetByNo?name=盐业管理条例'>盐业管理条例</A>》
<A HREF='http://admin/law/index.asmx/GetByNo?name=盐业管理条例&no=20'>第二十条</A>,国务院《<A HREF='http://admin/law/index.asmx/GetByNo?name=食盐专营办法'>食盐专营办法</A>》
<A HREF='http://admin/law/index.asmx/GetByNo?name=食盐专营办法&no=10'>第十条</A>
<A HREF='http://admin/law/index.asmx/GetByNo?name=食盐专营办法&no=21'>第十一条,</A>《海南省<A HREF='http://admin/law/index.asmx/GetByNo?name=盐业管理条例'>盐业管理条例</A>》
<A HREF='http://admin/law/index.asmx/GetByNo?name=盐业管理条例&no=26'>第二十六条</A>就是要在《 》 之间加入链接 且跟在后面的具体某一条也要加入跟《 》对应的链接那位高手有好的思路可以指教一下
国务院《盐业管理条例》第二十条,国务院《食盐专营办法》第十条、第十一条,《海南省盐业管理条例》第二十六条
替换成:
国务院《<A HREF='http://admin/law/index.asmx/GetByNo?name=盐业管理条例'>盐业管理条例</A>》
<A HREF='http://admin/law/index.asmx/GetByNo?name=盐业管理条例&no=20'>第二十条</A>,国务院《<A HREF='http://admin/law/index.asmx/GetByNo?name=食盐专营办法'>食盐专营办法</A>》
<A HREF='http://admin/law/index.asmx/GetByNo?name=食盐专营办法&no=10'>第十条</A>
<A HREF='http://admin/law/index.asmx/GetByNo?name=食盐专营办法&no=21'>第十一条,</A>《海南省<A HREF='http://admin/law/index.asmx/GetByNo?name=盐业管理条例'>盐业管理条例</A>》
<A HREF='http://admin/law/index.asmx/GetByNo?name=盐业管理条例&no=26'>第二十六条</A>就是要在《 》 之间加入链接 且跟在后面的具体某一条也要加入跟《 》对应的链接那位高手有好的思路可以指教一下
例如String[] law = {"盐业管理条例'", "食盐专营办法"};
依次判断当前字符串总是否包含匹配字符串
例如国务院《盐业管理条例》第二十条包含了"盐业管理条例",就用字符串替换一下就ok
然后在搜索后面"第"和"条"之间的数字,把汉字数字转换成十进制的算法网上有很多,你可以自己去找找,此时"盐业管理条例"和"20"都会做为变量,然后去构造字符串
"<A HREF='http://admin/law/index.asmx/GetByNo?name=" + law + "&no=" + lawnumber + "'>" + numString + "</A>"
其中变量law是从前面获取的法律,lawnumber是从第和条之间截取的汉字转换后生成的数字,而
numString是截取从第到条之间的字符串,不知道说明白了没有
一点拙见,让大家见笑了
只是一种情况 如果出现
1 。国务院《盐业管理条例》第二十条,国务院《食盐专营办法》
2 。国务院《盐业管理条例》,国务院《食盐专营办法》 类此的该 怎么办
Pattern p = Pattern.compile("《[^》]*");
Matcher m = p.matcher(str);
while(m.find()){
//TODO
}在循环体里逐个处理。
使用SQL去处理
//对str载串
str=str.substring(str.indexOf('》')); //现在内容:"第二十条,国务院《食盐专营办法》第十条、第十一条,《海南省盐业管理条例》第二十六条";
str=str.substring(str.indexOf('《')); //现在内容:"《食盐专营办法》第十条、第十一条,《海南省盐业管理条例》第二十六条";
//同理,得到《食盐专营办法》,第十条,第十一条…………