JAVA字符串中去重复字符串
比如字符串“教练教练裁判裁判裁判运动员运动员”,去掉其中重复出现的字符串,最后结果为“教练裁判运动员”,该如何实现?...
比如字符串“教练教练裁判裁判裁判运动员运动员”,去掉其中重复出现的字符串,最后结果为“教练裁判运动员”,该如何实现?
展开
展开全部
import java.util.ArrayList;
import java.util.List;
public class $ {
public static void main(String[] args) {
String str = "教练教练裁判裁判裁判运动员运动员";
List<String> data = new ArrayList<String>();
for (int i = 0; i < str.length(); i++) {
String s = str.substring(i, i + 1);
if (!data.contains(s)) {
data.add(s);
}
}
String result = "";
for (String s : data) {
result += s;
}
System.out.println(result);
}
}
教练裁判运动员
展开全部
用一个数组将字符串装起来,然后对字符串从第一个字符开始和之前的字符进行匹配检索,只要有相等的,就继续向后匹配,只要有两个字符及以上匹配相等,就删除当前已匹配小字符串就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好用个特殊符号
如教f练f教f练f裁f判f裁f判f裁f判f运f动f员f运f动f员
这样就可以通过字符串的split的方法取出所有单个字符
然后存在 HashSet里 再读出来就好了啊
如教f练f教f练f裁f判f裁f判f裁f判f运f动f员f运f动f员
这样就可以通过字符串的split的方法取出所有单个字符
然后存在 HashSet里 再读出来就好了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的办法,扫描字符串,对每个字符,删除其后续出现,这样可以保证不会有重复的字符出现,那自然也不会有重复字符串出现。
但是,从语义上说,会有问题
比如“教练教授裁判”会变成“教练授裁判”
但是,从语义上说,会有问题
比如“教练教授裁判”会变成“教练授裁判”
追问
很感谢你的回答,但是我也确实不想要你说的那个问题出现。
上面我采纳的那个回答也是有这样的问题,我想取消采纳也取消不了:(
追答
如果要达到语义级别的消除重复串,你可以考虑预先定义“词”(词基本是领域相关的)
比如,你举的例子“教练教练裁判裁判裁判运动员运动员”,词就是教练、裁判、运动员
然后基于你定义的词的级别,去消除重复
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.util.ArrayList;
import java.util.List;
public class $ {
public static void main(String[] args) {
String str = "教练教练裁判裁判裁判运动员运动员";
List<String> data = new ArrayList<String>();
for (int i = 0; i < str.length(); i++) {
String s = str.substring(i, i + 1);
if (!data.contains(s)) {
data.add(s);
}
}
String result = "";
for (String s : data) {
result += s;
}
System.out.println(result);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询