HJ14 字符串排序
描述
给定 n 个字符串,请对 n 个字符串按照字典序排列。
示例1
输入:
9
cap
to
cat
card
two
too
up
boat
boot
输出:
boat
boot
cap
card
cat
to
too
two
up
法一
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int num = sc.nextInt();
String[] arr = new String[num];
for (int i = 0 ; i < num ; i++) {
arr[i] = sc.next();
}
Arrays.sort(arr);
for (int i = 0 ; i < num ; i++) {
System.out.println(arr[i]);
}
}
}
}
知识点
这是因为之前输入一个nextInt后,输入的回车会被nextLine给接受,所以排序会少最后输入的字符串。
更改方案:可以将nextLine改为next,后者不接受空格回车
法二
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
useQueue();
}
public static void useQueue() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PriorityQueue<String> pq = new PriorityQueue<>();
br.readLine();// read the first line, but the number will not be used.
String s = "";
while ((s = br.readLine()) != null) {
pq.offer(s);
}
while (!pq.isEmpty()) {
System.out.println(pq.poll());
}
}
}