1. 程式人生 > >字串中字元排序

字串中字元排序

【問題描述】編寫一個程式,從鍵盤接收一個字串,然後按照字元順序從小到大進行排序,並刪除重複的字元。
【輸入形式】使用者在第一行輸入一個字串。
【輸出形式】程式按照字元(ASCII)順序從小到大排序字串,並刪除重複的字元進行輸出。
【樣例輸入】badacgegfacb
【樣例輸出】abcdefg
【樣例說明】使用者輸入字串badacgegfacb,程式對其進行按從小到大(ASCII)順序排序,並刪除重複的字元,最後輸出為abcdefg
題目描述清晰,本題解題時應先將字串轉變成字元陣列,然後在對字元陣列進行排序去重,具體分為了2個小函式。
程式碼如下:

import java.util.Scanner;

public class Test2 {
    static void  soft(char []ch) {
    	for(int i=0;i<ch.length-1;i++) {
    		for(int j=0;j<ch.length-i-1;j++) {
    			if(ch[j]>ch[j+1]) {
    				char c=ch[j];
    				ch[j]=ch[j+1];
    				ch[j+1]=c;
    			}
    		}
    	}
    }
    static void overwrite(char[]ch) {
        char []ch2=new char[ch.length];
        ch2[0]=ch[0];
        int length=1;
        for(int i=1;i<ch.length;i++) {
        	if(ch[i]!=ch[i-1]) ch2[length++]=ch[i];
        }
        for(int i=0;i<length;i++)
        	System.out.print(ch2[i]);
        
    }
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		String string;
		string=scanner.nextLine();
		char []ch=string.toCharArray();
        soft(ch);
        overwrite(ch);
	}

}