Java 具有拆分大小的If-else语句
我正试图编写一个基本程序,输出用户输入的姓名的首字母和变体。我已经记下了基本的编码,但是我一直在思考如何编写if-else语句,以便用户只输入名字和姓氏,而不输入中间名。以下是代码的开头:Java 具有拆分大小的If-else语句,java,Java,我正试图编写一个基本程序,输出用户输入的姓名的首字母和变体。我已经记下了基本的编码,但是我一直在思考如何编写if-else语句,以便用户只输入名字和姓氏,而不输入中间名。以下是代码的开头: Scanner scan=new Scanner (System.in); System.out.println("What are your first, middle, and last names? "); String name = scan.nextLine(); String[] partOfNa
Scanner scan=new Scanner (System.in);
System.out.println("What are your first, middle, and last names? ");
String name = scan.nextLine();
String[] partOfName = name.split(" ");
**if ()**
{
char firstInitial = Character.toUpperCase(partOfName[0].charAt(0));
char middleInitial= Character.toUpperCase(partOfName[1].charAt(0));
char lastInitial = Character.toUpperCase(partOfName[2].charAt(0));
String firstName = partOfName[0].substring(0,1).toUpperCase() + partOfName[0].substring(1);
String lastName = partOfName[2].substring(0,1).toUpperCase() + partOfName[2].substring(1);
String middleName = partOfName[1].substring(0,1).toUpperCase() + partOfName[1].substring(1);
String c_lastName = lastName.toUpperCase();
System.out.println ("Your Initials Are " + firstInitial + middleInitial + lastInitial);
System.out.println("Variation one: " + c_lastName + ", " + firstName + " " + middleInitial + ".");
System.out.println("Variation two: " + lastName+ ", " + firstName + " " + middleName);
}
else
{
char firstInitial = Character.toUpperCase(partOfName[0].charAt(0));
char lastInitial = Character.toUpperCase(partOfName[2].charAt(0));
}
计算输入的字数
if (partOfName.length == 2){
// only First name and last name
}else if (partOfName.length == 3){
// with middle name
}
计算输入的字数
if (partOfName.length == 2){
// only First name and last name
}else if (partOfName.length == 3){
// with middle name
}
使用数组的大小
partOfName
if (partOfName.length>=3)
{
//work with first name, middle name and last name
} else {
//work with first name and last name
}
使用数组的大小
partOfName
if (partOfName.length>=3)
{
//work with first name, middle name and last name
} else {
//work with first name and last name
}
我可能会检查数组的
length
属性
if (partOfName.length > 2) // At least 3 names entered
{
}
else if (partOfName.length == 2) // Two names entered
{
}
您可能还想检查是否只输入了一个名称。也许用户是麦当娜。我可能会检查数组的
长度属性
if (partOfName.length > 2) // At least 3 names entered
{
}
else if (partOfName.length == 2) // Two names entered
{
}
Scanner scan=new Scanner (System.in);
System.out.println("What are your first, middle, and last names? ");
String name = scan.nextLine();
String[] partOfName = name.split(" ");
int len = partOfName.length;
if( len > 2 )
{
//If user inputs 4 or more words only first three will be evaluated.
char firstInitial = Character.toUpperCase(partOfName[0].charAt(0));
char middleInitial= Character.toUpperCase(partOfName[1].charAt(0));
char lastInitial = Character.toUpperCase(partOfName[2].charAt(0));
String firstName = partOfName[0].substring(0,1).toUpperCase() + partOfName[0].substring(1);
String lastName = partOfName[2].substring(0,1).toUpperCase() + partOfName[2].substring(1);
String middleName = partOfName[1].substring(0,1).toUpperCase() + partOfName[1].substring(1);
String c_lastName = lastName.toUpperCase();
System.out.println ("Your Initials Are " + firstInitial + middleInitial + lastInitial);
System.out.println("Variation one: " + c_lastName + ", " + firstName + " " + middleInitial + ".");
System.out.println("Variation two: " + lastName+ ", " + firstName + " " + middleName);
}
else if(len == 2)
{
char firstInitial = Character.toUpperCase(partOfName[0].charAt(0));
char lastInitial = Character.toUpperCase(partOfName[1].charAt(0));
}
else if ( len < 2)
{
System.out.println("Bad input");
}
您可能还想检查是否只输入了一个名称。也许用户就是麦当娜
Scanner scan=new Scanner (System.in);
System.out.println("What are your first, middle, and last names? ");
String name = scan.nextLine();
String[] partOfName = name.split(" ");
int len = partOfName.length;
if( len > 2 )
{
//If user inputs 4 or more words only first three will be evaluated.
char firstInitial = Character.toUpperCase(partOfName[0].charAt(0));
char middleInitial= Character.toUpperCase(partOfName[1].charAt(0));
char lastInitial = Character.toUpperCase(partOfName[2].charAt(0));
String firstName = partOfName[0].substring(0,1).toUpperCase() + partOfName[0].substring(1);
String lastName = partOfName[2].substring(0,1).toUpperCase() + partOfName[2].substring(1);
String middleName = partOfName[1].substring(0,1).toUpperCase() + partOfName[1].substring(1);
String c_lastName = lastName.toUpperCase();
System.out.println ("Your Initials Are " + firstInitial + middleInitial + lastInitial);
System.out.println("Variation one: " + c_lastName + ", " + firstName + " " + middleInitial + ".");
System.out.println("Variation two: " + lastName+ ", " + firstName + " " + middleName);
}
else if(len == 2)
{
char firstInitial = Character.toUpperCase(partOfName[0].charAt(0));
char lastInitial = Character.toUpperCase(partOfName[1].charAt(0));
}
else if ( len < 2)
{
System.out.println("Bad input");
}
您可能需要增强else语句,以确保split实际上至少包含两个部分
您可能需要增强else语句,以确保split在设置之前至少有两个部分
char firstInitial = Character.toUpperCase(partOfName[0].charAt(0));
char middleInitial= Character.toUpperCase(partOfName[1].charAt(0));
char lastInitial = Character.toUpperCase(partOfName[2].charAt(0));
确保拆分后的数组包含三个元素。否则你的程序就会失败。
然后您可以假设,如果数组有两个元素,用户输入了他的姓名和姓氏,那么您可以设置firstInitial和lastInitial。
如果数组的长度为3,则可以设置firstInitial、middleInitial和lastInitial
int len=partOfName.length;
// If you need to get more than 3, you should need a more generic solution.
if (len<2 || len>3 )
System.out.println("Bad input."); // or throw an Exception
if (len==3){
//set initials of name, middle and lastname
}
else if (len==2) {
//set initials of name, and lastname
}
int len=partOfName.length;
//如果您需要获得3个以上,那么您应该需要一个更通用的解决方案。
如果(len3)
System.out.println(“输入错误”);//或者抛出异常
如果(len==3){
//设置姓名、中间名和姓氏的首字母缩写
}
else if(len==2){
//设置姓名和姓氏的首字母缩写
}
首先,在设置之前
char firstInitial = Character.toUpperCase(partOfName[0].charAt(0));
char middleInitial= Character.toUpperCase(partOfName[1].charAt(0));
char lastInitial = Character.toUpperCase(partOfName[2].charAt(0));
确保拆分后的数组包含三个元素。否则你的程序就会失败。
然后您可以假设,如果数组有两个元素,用户输入了他的姓名和姓氏,那么您可以设置firstInitial和lastInitial。
如果数组的长度为3,则可以设置firstInitial、middleInitial和lastInitial
int len=partOfName.length;
// If you need to get more than 3, you should need a more generic solution.
if (len<2 || len>3 )
System.out.println("Bad input."); // or throw an Exception
if (len==3){
//set initials of name, middle and lastname
}
else if (len==2) {
//set initials of name, and lastname
}
int len=partOfName.length;
//如果您需要获得3个以上,那么您应该需要一个更通用的解决方案。
如果(len3)
System.out.println(“输入错误”);//或者抛出异常
如果(len==3){
//设置姓名、中间名和姓氏的首字母缩写
}
else if(len==2){
//设置姓名和姓氏的首字母缩写
}
您可能不希望有,partOfName.length>2
,因为用户可以输入4个名称。我不认为他会想解析它。@RoK没问题。逻辑只涉及前三个词。第四个被忽略了。不过你想让条件尽可能严格。代码看起来可能有误导性。我收到一个错误:找不到符号。应该改为name.length吗?@user2799775是的,有一个拼写错误,Mike Christensen纠正了,您可能不想有,partOfName.length>2
,因为用户可以输入4个名称。我不认为他会想解析它。@RoK没问题。逻辑只涉及前三个词。第四个被忽略了。不过你想让条件尽可能严格。代码看起来可能有误导性。我收到一个错误:找不到符号。是否应该改为name.length?@user2799775是的,有一个拼写错误,Mike Christensen更正了。我收到一个错误:找不到符号。是否应改为name.length?您要确保数组partOfName
的长度为3或更多,以确保输入(name
)被拆分为3或更多部分。我收到一个错误:找不到符号。是否应改为name.length?您想确保数组partOfName
的长度为3或更多,以确保输入(name
)被拆分为3或更多部分。您能给我一个例子吗?我想我理解你的意思,但不是100%重复:你能给我举个例子吗?我想我理解你的意思,但不是100%重复:array.length是最终字段,不是methodarray.length是最终字段,不是方法