问题描述:
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
输入格式:
输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
输出格式:
按照以下格式输出排序后的结果:
After sorted:
每行一个字符串
输入样例:
red yellow blue black white
输出样例:
After sorted:
black
blue
red
white
yellow
思路:
- 导入必要的库:
java.util.Arrays
和java.util.Scanner
。Arrays库提供了用于操作数组的各种方法,如排序;Scanner类则用于从用户获取输入。 - 定义了一个名为
str
的字符串数组,其长度为5。 - 创建一个Scanner对象,名为
scan
,用于从标准输入(在这种情况下为控制台)获取用户输入。 - 使用
scan.nextLine()
方法从用户获取一行输入,然后将这个输入赋值给字符串s
。 - 使用
s.split(" ")
方法将字符串s
按空格分割,得到的每个单词将作为新数组的元素。这个新数组再次赋值给str
,所以现在str
包含了输入行中的所有单词。 - 使用
Arrays.sort(str)
方法对str
数组进行排序。 - 输出 "After sorted:" 以提示接下来的输出内容。
- 使用for循环遍历排序后的数组,并打印每个元素。循环变量
i
从0开始,到4结束,这是因为数组的索引从0开始,而数组的长度是5。所以循环将打印出排序后的所有单词。
代码:
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String args[]){
String str[] = new String[5];
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
str = s.split(" ");
Arrays.sort(str);
System.out.println("After sorted:");
for(int i=0; i<5; i++) System.out.println(str[i]);
}
}
运行效果: