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));
}
}