如何刪除字符串中重複的字符

預備知識:

0表示整數,'0'表示0字符,'\0'表示ASCII碼值爲0的字符

如果是 “字符串數組” 轉 “字符串”,只能通過循環,沒有其它方法 
String[] str = {"abc", "bcd", "def"};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length; i++){
  sb. append(str[i]);
}
String s = sb.toString();
如果是 “字符數組” 轉 “字符串” 可以通過下邊的方法 
String st=new String(c,0, l);  //第一個位置爲字符數組名字,第二個爲開始的位置,第三個爲字符數組的長度
return st;
1.蠻力法。(最簡單的方法是把字符串看成一個字符數組,對該字符數組使用雙重循環遍歷,如果發現有重複的字符,就把該字符置爲'\0',最後再把這個字符數組中所有的'\0'去掉,此時得到的字符串就是刪除重複字符後的目標字符串

public class Test {
	public static void main(String args[]){    
	       String str="abcaabcd";   
	       str=removeDuplicate(str);     
	       System.out.print(str);      
	}
        private static String removeDuplicate(String str) {
		char[] c=str.toCharArray();   //把字符串str轉化爲字符數組c[]
		int len=c.length;
		for(int i=0;i<len;i++){
			if(c[i]=='\0')
				continue;
			for(int j=i+1;j<len;j++){
				if(c[j]=='\0')
					continue;
				if(c[i]==c[j])
					c[j]='\0';
			}
		}
		int l=0;
		for(int i=0;i<len;i++){      //得到每個元素只有一個的字符數組c[]
			if(c[i]!='\0') 
				c[l++]=c[i];
		} 
		
		System.out.println("l表示的是字符串的個數:"+l);
		//將字符數組轉化爲字符串兩種方法
		/*
		  String st=new String(c,0, l);  //第一個位置爲字符數組名字,第二個爲開始的位置,第三個爲字符數組的長度
	          return new String(st);
	        */
		return new String(c,0,l);  //第一個位置爲字符數組名字,第二個爲開始的位置,第三個爲字符數組的長度
	}
}



發佈了82 篇原創文章 · 獲贊 13 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章