1. 程式人生 > >字串排序按長度,長度相同按字典排序

字串排序按長度,長度相同按字典排序

題目描述


先輸入你要輸入的字串的個數。然後換行輸入該組字串。每個字串以回車結束,每個字串少於一百個字元。 如果在輸入過程中輸入的一個字串為“stop”,也結束輸入。 然後將這輸入的該組字串按每個字串的長度,由小到大排序,按排序結果輸出字串。

輸入描述:

字串的個數,以及該組字串。每個字串以‘\n’結束。如果輸入字串為“stop”,也結束輸入.

輸出描述:

可能有多組測試資料,對於每組資料,
將輸入的所有字串按長度由小到大排序輸出(如果有“stop”,不輸出“stop”)。

根據輸入的字串個數來動態分配儲存空間(採用new()函式)。每個字串會少於100個字元。
測試資料有多組,注意使用while()迴圈輸入。

import java.util.*;

public class 字串排序按長度 {


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);

while(input.hasNextLine()) {
int n = Integer.parseInt(input.nextLine());

List<String> list = new ArrayList<>();

for(int i=0;i<n;i++) {
String temp = input.nextLine();
if(temp.equals("stop"))
break;
else
list.add(temp);
}

Collections.sort(list,new StringComparator());;

for(String e:list)
System.out.println(e);
}

}
private static class StringComparator implements Comparator<String>{
public int compare(String o1,String o2) {
int len1 = o1.length();
int len2 = o2.length();
if(len1!=len2)
return len1-len2;
else 
return o1.compareTo(o2);
}
}
}