高效去重复,求解
下面一段是需要去除重复的文字:
侵害人员:本地, 侵害人员:老年, 侵害人员:人大代表, 侵害人员:发廊妹, 侵害人员: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);
------解决方案--------------------
------解决方案--------------------
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);
}
------解决方案--------------------