Java 将名字和姓氏从名字、姓氏打印到姓氏、姓氏

Java 将名字和姓氏从名字、姓氏打印到姓氏、姓氏,java,printing,Java,Printing,formatName方法应该 接受名为name的字符串,该字符串包含格式为“First-Last”的名称。你可以假设 字符串中只有一个空格。该方法应创建并返回包含名称的字符串 格式为“最后,第一” 公共静态void formatName(字符串名称){ 扫描仪扫描=新扫描仪(System.in); 字符串名; 字符串lastName; 整数指数; System.out.println(“输入名字:”); firstName=scan.nextLine(); System.out.println(

formatName方法应该 接受名为name的字符串,该字符串包含格式为“First-Last”的名称。你可以假设 字符串中只有一个空格。该方法应创建并返回包含名称的字符串 格式为“最后,第一”

公共静态void formatName(字符串名称){
扫描仪扫描=新扫描仪(System.in);
字符串名;
字符串lastName;
整数指数;
System.out.println(“输入名字:”);
firstName=scan.nextLine();
System.out.println(“输入姓氏:”);
lastName=scan.nextLine();
对于(int i=0;i
您的formatName方法比它应该的更复杂。要求使用一个字符串firstname(空格)lastname并返回lastname(逗号空格)firstname

用户输入应在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方法中,用户可以输入单个字符串(名称)。代码为该输入字符串调用
formatName(name)
方法,并期望该方法返回在控制台上打印的字符串

formatName方法将名称字符串拆分为存储在数组中的部分(nameTokenized)。如果数组的长度不是2,这意味着名称之间没有空格,则会引发异常

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

样本输出:

 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)

这看起来就像是一个家庭作业问题或练习的副本。到目前为止你试过什么?你有什么特别的问题吗?我的坏蛋本应该输入代码的,但我正在尝试将名字和姓氏切换到姓氏,姓氏ex/john doe,doe johnLooks好像你的代码都被注释掉了。您试图一次访问一个字符的名称。你不需要那样做。只需在字符串级别使用它们。您不需要将
name
作为参数传递。你会通过什么?您使用它作为局部变量来保存最终结果,最终结果只返回。首先,应该创建并返回一个字符串,这样该方法就不应该是
void
。其次,您应该对
name
参数进行操作,而不是提示进行更多输入。第三,你应该在这个论点中寻找一个空间。第四,一旦知道空间的位置,就应该能够将该空间左右两侧的
字符串部分格式化为新的
字符串。
 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)