题目描述:
输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。
输入描述:
输入包括多行字符串,字符串的长度len(1<=len<=1000)。
输出描述:
按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出。
示例1
输入
hello
she
sorry
he
输出
he
hello
sorry
代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//字符串数组
ArrayList<String> list = new ArrayList<>();
//字符串长度数组
ArrayList<Integer> list1 = new ArrayList<>();
while (sc.hasNextLine()) {
String string = sc.nextLine();
if ("".equals(string)) {
break;
}
list.add(string);//将键盘接收的字符串添加到字符串数组中
list1.add(string.length());//将字符串的长度添加到list1中
}
Collections.sort(list1); //对所有字符串的长度进行排序
//用for循环遍历字符串数组的所有元素,查看其长度与list1中最大最小的值是否相等
//若相等便输出
//查找最小长度字符串
for (int i = 0; i < list.size(); i++) {
if (list.get(i).length() == list1.get(0)) {
System.out.println(list.get(i));
}
}
//查找最大长度字符串
for (int i = 0; i < list.size(); i++) {
if (list.get(i).length() == list1.get(list1.size() - 1)) {
System.out.println(list.get(i));
}
}
}
}