从名字,姓氏到名字,姓氏打印名字和姓氏

时间:2019-10-24 01:34:25

标签: java printing

formatName方法应 接受一个名为name的字符串,该字符串包含“ First Last”格式的名称。您可能会认为 字符串中只有一个空格。该方法应创建并返回一个包含名称的字符串 格式为“ Last,First”。

public static void formatName ( String name ) {
 Scanner scan = new Scanner ( System.in);

 String firstName;
 String lastName;
 int index;


 System.out.println(" Enter First Name : ");
 firstName = scan.nextLine();

 System.out.println(" Enter Last Name : ");
 lastName = scan.nextLine();

 for ( int i = 0; i < lastName (); i++){
    for ( int x = 0; x < firstName(); x++){

 name += firstName.charAt(i);
 name += lastName.charAt(x);

 return name;
    }
 }

}//end formatName

1 个答案:

答案 0 :(得分:0)

您的formatName方法比应该的复杂。要求是使用一个具有名字(空格)姓氏的字符串并返回姓氏(逗号空格)姓氏。

用户输入应在formatName方法之外。

查看下面的示例

public static void main(String[] args) throws Exception {
        Scanner scan = new Scanner ( System.in);
        System.out.println(" Enter Name : ");
        String name = scan.nextLine();
        System.out.println("Input: " + name);
        System.out.println("Formated: " + formatName(name));
    }

    public static String formatName ( String name ) throws Exception {
        String[] nameTokenized = name.split(" ");
        if (nameTokenized.length!=2){
            throw new Exception("Incorrect Name");
        }
        String firstName = nameTokenized[0];
        String lastName = nameTokenized[1];

        return lastName + ", " + firstName;
    }//end formatName

在main方法中,用户可以输入一个String(名称)。代码为该输入String调用formatName(name)方法,并期望该方法返回在控制台上打印的String。

formatName方法将名称String拆分为存储在数组(nameTokenized)中的部分。如果数组的长度不为2,则表示名称之间不存在空格,则会引发异常。

如果输入(名称)正确,则将设置firstName和lastName变量,并且该方法将以lastname(逗号空间)firstname的格式返回String。

示例输出:

 Enter Name : 
Joe Doe
Input: Joe Doe
Formated: Doe Joe

输入错误

 Enter Name : 
Joe Doe Doe
Input: Joe Doe Doe
Exception in thread "main" java.lang.Exception: Incorrect Name
    at Main2.formatName(Main2.java:17)
    at Main2.main(Main2.java:11)