字符串的个数,以及该组字符串。每个字符串以‘\n’结束。如果输入字符串为“stop”,也结束输入.
可能有多组测试数据,对于每组数据, 将输入的所有字符串按长度由小到大排序输出(如果有“stop”,不输出“stop”)。 根据输入的字符串个数来动态分配存储空间(采用new()函数)。每个字符串会少于100个字符。 测试数据有多组,注意使用while()循环输入。
5 sky is grey cold very cold stop 3 it is good enough to be proud of good it is quite good
cold very cold sky is grey good it is quite good it is good enough to be proud of
import java.util.Scanner; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.TreeMap; /* * 注意: * 只要nextInt,next,nextdouble方法在nextLine前面时, * 就会跳过nextline的输入nextInt()是以换行符或者回 * 车结束的,表示输入结束。而换行符 ” /n“,回车符 也是 * 一个字符.nextLine()会把前者的换行符或者回车一个字符 * 输入,所以nextLine不是没有录入值,而是直接把换行符或 * 者回车符录入,直接结束输入,所以nextLine不需要再从控制台中录入。 */ public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNext()) { int n = scanner.nextInt(); scanner.nextLine(); // 消耗掉换行符 //设置一个map用来存储字符串和字符串的长度 Map<String, Integer> myMap = new TreeMap<String, Integer>(); for (int i = 0; i < n; i++) { String str = scanner.nextLine(); if (str.equals("stop")) { break; } int length = str.length(); myMap.put(str, length); } List<Map.Entry<String, Integer>> myList = new ArrayList<>(myMap.entrySet()); myList.sort(Map.Entry.comparingByValue()); Map<String, Integer> sortedMap = new LinkedHashMap<String, Integer>(); for(Map.Entry<String , Integer> entry : myList) { sortedMap.put(entry.getKey(), entry.getValue()); } for(Map.Entry<String, Integer> entry: sortedMap.entrySet()) { System.out.println(entry.getKey()); } } } }
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; 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) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Scanner sc = new Scanner(System.in); while(sc.hasNext()) { int n = Integer.parseInt(sc.nextLine()); List<String> list = new ArrayList<>(); for(int i=0;i<n;++i) { String s = sc.nextLine(); if(s.equals("stop")) { break; }else { list.add(s); } } Collections.sort(list,new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.length()-o2.length(); } }); for(String str : list) { System.out.println(str); } } } }
import java.util.ArrayList; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); scanner.nextLine(); ArrayList<String> list = new ArrayList<>(); for (int i = 0; i < n; i++) { String line = scanner.nextLine(); if (line.equals("stop")) break; else list.add(line); } list.sort(Comparator.comparingInt(String::length)); for (String s : list) System.out.println(s); } }
import java.util.ArrayList; import java.util.Scanner; public class StringSort { public static void main(String[] args) { Scanner in=new Scanner(System.in); ArrayList<String> list=new ArrayList<String>(); while(in.hasNext()) { int n=in.nextInt(); in.nextLine(); for(int i=0;i<n;i++) { String s=in.nextLine(); if(s.equals("stop")) break; list.add(s); } list.sort((o1,o2)-> { return o1.length()> o2.length() ? 1: (o1.length()==o2.length()?0:-1); }); list.forEach(str->{System.out.println(str);}); } } }
import java.util.*;
public class test17 {
@SuppressWarnings("resource")
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(in.hasNext()){
int n=in.nextInt();
in.nextLine();
Map<Integer,String> map=new HashMap<Integer,String>();
for(int i=1;i<=n;i++){
String s=in.nextLine();
//System.out.println(s.hashCode());
if(s.equals("stop"))
break;
else map.put(s.length(),s);
}
List<Map.Entry<Integer, String>> list=
new ArrayList<Map.Entry<Integer,String>>(map.entrySet());
Collections.sort(list,new Comparator<Map.Entry<Integer,String>>(){
public int compare(Map.Entry<Integer,String> o1,
Map.Entry<Integer,String> o2){
return o1.getKey()-o2.getKey();
}
});
for(int i=0;i<list.size();i++){
Map.Entry<Integer, String> ent=list.get(i);
System.out.println(ent.getValue());
}
}
}
}