MyException - 我的异常网
当前位置:我的异常网» Java相关 » 高效去重复,求解解决方法

高效去重复,求解解决方法

www.MyException.Cn  网友分享于:2013-01-09  浏览:61次
高效去重复,求解
下面一段是需要去除重复的文字:
侵害人员:本地, 侵害人员:老年, 侵害人员:人大代表, 侵害人员:发廊妹, 侵害人员:1, 
侵犯物品:一般物品, 侵犯物品:保险柜, 侵犯物品:1, 
地点属性:高层楼宇, 地点属性:机关, 地点属性:银行, 地点属性:工厂, 地点属性:城中村, 地点属性:1, 
作案时机:雨天, 作案时机:工作日, 作案时机:早晨, 作案时机:1, 
入口出口:.门, 入口出口:1, 
进入方式:撬门, 进入方式:破坏窗栅, 进入方式:击砸锁体, 进入方式:阳台, 进入方式:挖洞, 进入方式:钥匙开锁, 进入方式:1, 
作案工具:1, 作案工具:随身携带, 
动机起因:图财, 动机起因:无经济来源, 动机起因:1。

下面一段是需要达到的效果(以其中某段为例):
侵害人员:本地、老年、人大代表、发廊妹、1;
侵犯物品:一般物品、保险柜、1;
地点属性:高层楼宇、机关、银行、工厂、城中村、1;
作案时机:雨天、工作日、早晨、1。

高分求解,不论是java代码还是JS代码!

------解决方案--------------------
你需要这个 
com.google.common.collect.Multimap

包名叫google-guava.jar包,自己网上下。

这个类表示一个key中可以存多个value,比如put("侵害人员",a);put("侵害人员",b);这样get("侵害人员")就会得到a,b了。

------解决方案--------------------
那还不如自己写呢。
Java code

      String str = "侵害人员:本地, 侵害人员:老年, 侵害人员:人大代表, 侵害人员:发廊妹, 侵害人员:1,";
      String type = str.substring(0, str.indexOf(":") + 1);
      StringBuffer sb = new StringBuffer();
      sb.append(type);
      sb.append(str.replaceAll(type, ""));
      System.err.println(sb);

------解决方案--------------------
探讨

这样替换的只是第一组,第二组呢?你从哪里subtring?


------解决方案--------------------
Java code
public static void main(String[] args) {
//        System.out.println(contain("dssd"));
        String s1 = "侵害人员:本地, 侵害人员:老年, 侵害人员:人大代表, 侵害人员:发廊妹, 侵害人员:1,";
        String s2 = "侵犯物品:一般物品, 侵犯物品:保险柜, 侵犯物品:1,";
        String s3 = "地点属性:高层楼宇, 地点属性:机关, 地点属性:银行, 地点属性:工厂, 地点属性:城中村, 地点属性:1,";
        String s4 = "作案时机:雨天, 作案时机:工作日, 作案时机:早晨, 作案时机:1,  ";
        String s5 = "入口出口:.门, 入口出口:1, ";
        s1 = s1.replaceAll(",(.*?):", "、");
        s2 = s2.replaceAll(",(.*?):", "、");
        s3 = s3.replaceAll(",(.*?):", "、");
        s4 = s4.replaceAll(",(.*?):", "、");
        s5 = s5.replaceAll(",(.*?):", "、");
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s4);
        System.out.println(s5);
    }

------解决方案--------------------
探讨
function pro(res){
if(res[0].length<=0)return res;
var key = res[0].substring(0,res[0].indexOf(":")+1);

var lastRes = res[0].substring(key.length);

var current = lastRes.substring(0,lastRes.indexOf(",",lastRes.lastIndexOf(key)));

lastRes = lastRes.substring(current.length+1);
current = current.replaceAll(key,"");

res[0] = lastRes;
res[1] += key+current+"/n";
alert(res[1]);
pro(res);
}

文章评论

如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员必看的十大电影
程序员必看的十大电影
编程语言是女人
编程语言是女人
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员的鄙视链
程序员的鄙视链
漫画:程序员的工作
漫画:程序员的工作
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Java程序员必看电影
Java程序员必看电影
如何成为一名黑客
如何成为一名黑客
程序员和编码员之间的区别
程序员和编码员之间的区别
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员都该阅读的书
程序员都该阅读的书
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
中美印日四国程序员比较
中美印日四国程序员比较
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
老程序员的下场
老程序员的下场
我的丈夫是个程序员
我的丈夫是个程序员
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
 程序员的样子
程序员的样子
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
总结2014中国互联网十大段子
总结2014中国互联网十大段子
鲜为人知的编程真相
鲜为人知的编程真相
我是如何打败拖延症的
我是如何打败拖延症的
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
那些争议最大的编程观点
那些争议最大的编程观点
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
每天工作4小时的程序员
每天工作4小时的程序员
旅行,写作,编程
旅行,写作,编程
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有