gpt4 book ai didi

java - 询问用户三个名字并按字母顺序打印

转载 作者:行者123 更新时间:2023-12-01 06:35:14 24 4
gpt4 key购买 nike

引用文中的引用:“编写一个程序,要求用户输入三个名字,然后按升序排列显示这些名字。例如,如果用户输入“Charlie”、“Leslie”和“Andy” ",程序会显示

Andy 
Charlie
Leslie

我的教授特别说我们不允许使用循环或数组,因为我们在类里面没有介绍过。我一直在尝试使用 compareTo 方法,但似乎无法让它与两个以上的字符串变量一起运行。

public class SortedNames {

public static void main(String[] args) {

//Declare Variables
String name1;
String name2;
String name3;

//Accept User Imput
Scanner keyboard=new Scanner(System.in);
System.out.print("Please Enter First Name ");
name1=keyboard.nextLine();
System.out.print("Please Enter Second Name ");
name2=keyboard.nextLine();
System.out.print("Please Enter Third Name ");
name3=keyboard.nextLine();


//Compare

if((name2.compareToIgnoreCase(name1)<0)&&(name2.compareToIgnoreCase(name3)<0))
{
System.out.println(name2);
}

//Compare

if((name1.compareToIgnoreCase(name2)<0)&&(name1.compareToIgnoreCase(name3)<0))
{
System.out.println(name1);
}

//Compare

if((name3.compareToIgnoreCase(name1)<0)&&(name3.compareToIgnoreCase(name2)<0))
{
System.out.println(name3);
}
}

}

最佳答案

您有三个字符串,您需要比较它们并相应地对它们进行排序。让我们使用您的示例值:

String name1, name2, name3;
name1 = "Charlie";
name2 = "Leslie";
name3 = "Andy";

为了简单起见,有一条规则:您不能简单地“交换”值。您需要一个临时变量来保存要交换的值:

String temp;

现在,进行比较。我解决这个问题的方法是将第一个名字与第二个和第三个名字进行比较,并进行必要的交换:

if(name1.compareTo(name2) > 0) { // "Charlie" > "Leslie" (this won't happen)
temp = name1; // temp = "Charlie"
name1 = name2; // name1 = "Leslie"
name2 = temp; // name2 = "Charlie"
}
if(name1.compareTo(name3) > 0) { // "Charlie" > "Andy" (this will happen)
temp = name1; // temp = "Charlie"
name1 = name3; // name1 = "Andy"
name3 = temp; // name3 = "Charlie"
}
/*
* Up to this point:
* name1 = "Andy"; name2 = "Leslie"; name3 = "Charlie"
*/

这样,您将确保 name1 中保存三个值中的最小值。现在,比较 name2name3,并在必要时交换它们:

if(name2.compareTo(name3) > 0) { // "Leslie" > "Charlie" (this will happen)
temp = name2; // temp = "Leslie"
name2 = name3; // name2 = "Charlie"
name3 = temp; // name3 = "Leslie"
}
/*
* Up to this point:
* name1 = "Andy"; name2 = "Charlie"; name3 = "Leslie"
*/

你就完成了。

关于java - 询问用户三个名字并按字母顺序打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19190297/

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