7-18 字符串排队(分数 5)
从键盘上输入若干个英文单词,请按照字典顺序将这些单词输出。
输入格式:
在一行中输入不超过20个英文单词,用空格分开。
输出格式:
在一行中输出前面输入的英文单词,按照字典序顺序输出,用空格作为分割符。
输入样例:
I am a student
输出样例:
I a am student
1.非调用函数版
import java.util.Scanner;
public class Main{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
String arr[]=s.split(" "); //空格作分隔符将字符串分割成数组
for(int i=0;i<arr.length-1;i++) //按照字典序顺序输出英文字符串(冒泡排序)
{
for(int j=0;j<arr.length-1-i;j++)
{
if(arr[j].compareTo(arr[j+1])>0) //字符串比大小:s1.compareTi(s2)
{ //s1>s2则>0,s1==s2则=0,s1<s2则<0
String tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
for(int i=0;i<arr.length;i++)
System.out.printf("%s ",arr[i]);
}
}
2.调用函数版
import java.util.Scanner;
import java.util.Arrays;
public class Main{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
String arr[]=s.split(" ");
Arrays.sort(arr);
for(int i=0;i<arr.length;i++)
System.out.printf("%s ",arr[i]);
}
}