字串中字元排序
阿新 • • 發佈:2018-12-04
【問題描述】編寫一個程式,從鍵盤接收一個字串,然後按照字元順序從小到大進行排序,並刪除重複的字元。
【輸入形式】使用者在第一行輸入一個字串。
【輸出形式】程式按照字元(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); } }