在Java中打印缩写名称
我试图用Java编写代码,根据输入输出缩写名称。例如如果输入是“John Alex Smith”,则输出是“Smith,J.A.”,如果输入是“John Smith”,则输出是“Smith,J.”。如果输入的是名字、中间名和姓氏,则我的代码工作得非常好,但如果只输入名字和姓氏,则代码不起作用,我不知道为什么在Java中打印缩写名称,java,string,Java,String,我试图用Java编写代码,根据输入输出缩写名称。例如如果输入是“John Alex Smith”,则输出是“Smith,J.A.”,如果输入是“John Smith”,则输出是“Smith,J.”。如果输入的是名字、中间名和姓氏,则我的代码工作得非常好,但如果只输入名字和姓氏,则代码不起作用,我不知道为什么 import java.util.Scanner; public class LabProgram { public static void main(String[] args)
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String firstName = scnr.next();
String middleName = scnr.next();
String lastName = scnr.next();
char middleInitial = middleName.charAt(0);
char firstInitial = firstName.charAt(0);
if (middleName.length() > 0 && lastName.length() == 0) {
lastName = middleName;
System.out.println(lastName + ", " + firstInitial + "."); }
else if (lastName.length() > 0) {
System.out.println(lastName + ", " + firstInitial + "." + middleInitial + "."); }
/* Type your code here. */
}
}
我假设你输入了2个字符串,然后只按回车键就可以得到名字和姓氏?在这种情况下,
firstName
将具有第一个字符串middleName
将有第二个字符串,然后lastName
将是一个空字符串。您的if-else中没有支持该选项的条件,因此不会打印任何内容
您需要将其更改为检查:
- 如果
或firstName
为null或空,则这是一个错误middleName
- 否则,姓氏是否不为空?如果是这样,那就是3个命名输入
- 否则它是2个命名输入