字串排序 (java comparator介面的使用)

十二分熱愛發表於2018-08-04

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

Input

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

Output

將輸入的所有字串按長度由小到大排序輸出(如果有“stop”,不輸出“stop”)。 
 

Sample Input

5
sky is grey
cold
very cold
stop
3
it is good enough to be proud of
good
it is quite good

Sample Output

cold
very cold
sky is grey
good
it is quite good
it is good enough to be proud of

Hint

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


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		while(sc.hasNextLine())
		{
			List<String>list = new ArrayList<>();
			int n = Integer.parseInt(sc.nextLine());//???????不知道為什麼nextInt不可以
			for(int i=0;i<n;i++)
			{
				String temp=sc.nextLine();
				if(temp.equals("stop"))break;
				else list.add(temp);
			}
			
		Collections.sort(list, new Comparator<String>() {
				
		@Override
		public int compare(String s1, String s2) {
			int len1=s1.length();
			int len2=s2.length();
			return len1-(len2);
		}
		});
			for(String e:list)
				System.out.println(e);
			
	}
	}
}
	

 

相關文章