三个字符串的排序
一、题目内容
题目描述
输入三个字符串,按由小到大的顺序输出
输入格式
3行字符串
输出格式
按照从小到大输出成3行
样例输入
cde
afg
abc
样例输出
abc
afg
cde
二、思路分析
因为是字符串判断,第一时间想到ASCII码,原来打算是想到将三个字符串放进字符产数组,然后通过依次比较ASCII码大小来排序,后面发现可以用Arrays.sort() 方法对字符串数组进行排序。
实现原理:
Java 中,String 类实现了 Comparable 接口,该接口定义了一个 compareTo() 方法。这个方法的作用是比较当前字符串对象与另一个字符串对象的大小关系,并返回一个整数值。具体来说,compareTo() 方法会按照以下规则进行比较:
- 如果当前字符串对象小于另一个字符串对象,返回一个负数。
- 如果当前字符串对象等于另一个字符串对象,返回0。
- 如果当前字符串对象大于另一个字符串对象,返回一个正数。
在排序过程中,Arrays.sort() 方法会使用 compareTo() 方法的返回值来确定元素的排序顺序。根据排序的顺序,数组中的元素会被重新排列。
例如,假设有一个字符串数组 arr = {“banana”, “apple”, “orange”}。在调用 Arrays.sort(arr) 之后,该方法会先比较 “banana” 和 “apple”,由于 “banana” 大于 “apple”,所以它们的顺序不变。然后,比较 “banana” 和 “orange”,由于 “banana” 小于 “orange”,它们的顺序会交换。最后,比较 “apple” 和 “orange”,由于 “apple” 小于 “orange”,它们的顺序也会交换。最终,数组的排序结果为 {“apple”, “banana”, “orange”}。
注意:
1.Java 中字符串对象的比较是基于字符串的字符顺序进行的,即每个字符逐个比较。
2.在 compareTo()
方法中,字符串会从第一个字符开始逐个比较,如果两个字符不同,则根据它们的 Unicode 值来确定它们的相对顺序。如果所有字符都相同,则比较字符串的长度,较短的字符串会被认为是小于较长的字符串。
3.Java 中的字符串比较默认是区分大小写的。如果需要忽略大小写进行比较,可以使用 compareToIgnoreCase()
方法。
三、代码实现
public class _1044 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] arr = new String[3];
arr[0] = sc.nextLine();
arr[1] = sc.nextLine();
arr[2] = sc.nextLine();
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
不足之处,请留言指教