gpt4 book ai didi

java - 比使用 If Else 循环更简单的方法来排序哪个字符串更大?

转载 作者:行者123 更新时间:2023-11-30 12:02:14 31 4
gpt4 key购买 nike

我正在开发一个程序,该程序允许用户输入三个名称,然后使用 .compareTo 对名称中较大的名称进行排序。该程序在我所做的测试中运行良好,但使用 If Else 循环感觉像是一种对名称进行排序的困惑方式。有没有更简单的方法让我对它们进行排序?

//Determines if Name1 is greater than both other names.     
if ((name1.compareTo(name2) > 0) && (name1.compareTo(name3) > 0))
{
//Determines if name1 or name3 is greater.
if (name2.compareTo(name3) > 0)
System.out.printf("%s\n" + "%s\n" + "%s\n", name1, name2, name3);
else
System.out.printf("%s\n" + "%s\n" + "%s\n", name1, name3, name2);
}else if ((name2.compareTo(name1) > 0) && (name2.compareTo(name3) > 0)) //Determines if Name2 is greater than both other names.
{
//Determines if name1 or name3 is greater.
if (name1.compareTo(name3) > 0)
System.out.printf("%s\n" + "%s\n" + "%s\n", name2, name1, name3);
else
System.out.printf("%s\n" + "%s\n" + "%s\n", name2, name3, name1);
}else if ((name3.compareTo(name1) > 0) && (name3.compareTo(name2) > 0))//Determines if Name3 is greater than both other names.
{
//Determines if name1 or name2 is greater.
if (name1.compareTo(name2) > 0)
System.out.printf("%s\n" + "%s\n" + "%s\n", name3, name1, name2);
else
System.out.printf("%s\n" + "%s\n" + "%s\n", name3, name2, name1);
}

最佳答案

有很多方法,使用数组:

String name1 = "Allan";
String name2 = "Claudia";
String name3 = "Bianca";
String[] myArray = {name1, name2, name3};
Arrays.sort(myArray, Comparator.reverseOrder());

现在,您的数组已排序。但是,如果你只想打印名字,你应该使用流:

Arrays.asList(name1, name2, name3)
.stream()
.sorted(Comparator.reverseOrder())
.forEach(System.out::println);

关于java - 比使用 If Else 循环更简单的方法来排序哪个字符串更大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58740536/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com