java过滤字符串中重复字符
1. 判断字符串中是否有重复字符java
统计字符串中每个字符的个数,有大于1的说明有重复
Stringstr="abcdaefgh";
Map<String,Integer>map=newHashMap<String,Integer>();
for(charch:str.getChars())
{
Stringss=String.valueOf(ch);
Integercount=map.get(ss);
if(count==null)
count=1;
map.put(ss,count);
}
for(Stringst:map.keys())
{
System.out.println(st+":"+map.get(st));
}
2. java去除重复字符串的问题
packagetext;
importjava.util.ArrayList;
importjava.util.List;
publicclassQuchong{
publicstaticvoidmain(Stringargs[]){
Stringa="1,2,3,4,5,6";
Stringb="1,3,6";
Stringresult=quChong(a,b);
System.out.println(result.substring(0,result.lastIndexOf(",")));
}
privatestaticStringquChong(Stringa,Stringb){
StringBufferresult=newStringBuffer();
String[]aa=a.split(",");
String[]bb=b.split(",");
Listaaa=newArrayList();
Listbbb=newArrayList();
for(inti=0;i<aa.length;i++){
aaa.add(aa[i]);
}
for(intj=0;j<bb.length;j++){
bbb.add(bb[j]);
}
for(intm=0;m<aaa.size();m++){
if(!bbb.contains(aaa.get(m))){
Stringccc=(String)aaa.get(m);
result.append(ccc);
result.append(',');
}
}
returnresult.toString();
}
}
可能比较麻烦,我数据结构没学好,只能想到笨办法,不懂再问!
3. JAVA字符串中去重复字符串
String a="教练教练裁判裁判裁判运动员运动员";
String[] b=a.split("");
String[] e=a.split("");
String[] c==new String[100]();
String[] d=new String[100]();
int no=0;
for(int i=0;i<b.length;i++)
{
for(int e=0;i<e.length;e++)
{
if(b[i]==e[i])
{
no++;
}
else
{continue;}
}
if(no<=1)
{
c.add(b[i]);
}
}
最后数组c就是你要的结果
4. java 判断字符串中是否有重复字符
先排个序,再来个遍历,我只能想到这个办法了
5. java怎么查询一个字符串中重复的字符,并且计算他出现的次数。
把这个字符串按照这个字符分割,如果分出来有n段,就说明这个字符出现了n-1次
string
str="laslkav;lkjsn;skldnf;";
string
m=";";
string[]
r=str.split(m);
system.out.println(r.length-1);
6. 求: 用 Java 正则去掉字符串中重复出现的字符!
举例:
1、Stringstr="";
str=str.replaceAll(reg,"");
System.out.println(str);
2、str=str.replaceAll("(?s)(.)(?=.*\1)","");
(?s)(.)(?=.*1)
3、(?s)开启单行模式DOTALL让.号匹配任意字符
(.)任意字符并捕获在第一组
(?=.*1)这是断言,表示后面内容将是任意个字符加上第一组所捕获的内容
这样,如果这整个式子匹配到,表示,第一个捕获组内容在字符串中,至少出现两次,替换为""空串.
进行全局替换后,整个字符串所出现的字符将不重复。
另外:
正则表达式默认是从左向右匹配,java中似乎没有逆向匹配的选项
所以你可以先反转字符串,然后replace,然后再反转
如下
7. Java字符串去掉重复字符
package problem;
public class Nonrepeat {
public static String delRepeat(String str) {
char[] arr = str.toCharArray();
StringBuffer target = new StringBuffer();
boolean blDigit = false;
char nextChar = 0;
for (char c : arr) {
if (isDigit(c)) {
target.append(c);
blDigit = true;
} else if (!blDigit) {
target.append(c);
} else if (nextChar == 0 && blDigit) {
target.append(c);
nextChar = c;
} else if (blDigit && c != nextChar) {
target.append(c);
blDigit = false;
nextChar = 0;
} else if (blDigit && c == nextChar) {
blDigit = false;
nextChar = 0;
}
}
return target.toString();
}
private static boolean isDigit(char c) {
if (c > '0' && c < '9')
return true;
return false;
}
public static void main(String[] args) {
String s = "ss2ss15ddddsdf";
System.out.println(delRepeat(s));
}
}