五十道程式設計小題目 --- 40 字串排序 java
阿新 • • 發佈:2018-12-27
【程式40】
題目:字串排序。
輸出結果:import java.util.ArrayList; import java.util.HashMap; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test40 { public static void main(String[] args) { Scanner s = new Scanner(System.in); ArrayList<String> arrayList = new ArrayList<>(); int i = 0; String str = ""; System.out.println("請輸出字串(回車下一組,輸入stop則停止輸入):"); while(s.hasNext()){ str = s.nextLine(); if(!str.equalsIgnoreCase("stop")){ arrayList.add(str); }else{ break; } } System.out.println("您輸入的順序為:"); System.out.println(arrayList.toString()); System.out.println("排序:"); stringSort(arrayList); } private static void stringSort(ArrayList<String> arrList) { ArrayList<String> arrayList1 = new ArrayList<>(); ArrayList<String> arrayList2 = new ArrayList<>(); //選擇排序法 for(int i=0; i<arrList.size()-1; i++){ for(int j=i; j<arrList.size(); j++){ if(arrList.get(i).compareTo(arrList.get(j)) > 0 ){ swap(arrList,i,j); } } } System.out.println(arrList.toString()); } //陣列交換位置 private static void swap(ArrayList<String> arr, int i , int j ){ String strTmp = (String) arr.get(i); arr.set(i,arr.get(j) ); arr.set(j, strTmp); } }
請輸出字串(回車下一組,輸入stop則停止輸入):
dsfg
sgd
fhfhfrc
cfg
zsdwefc
abced
stop
您輸入的順序為:
[dsfg, sgd, fhfhfrc, cfg, zsdwefc, abced]
排序:
[abced, cfg, dsfg, fhfhfrc, sgd, zsdwefc]