我希望使用能够输入他们的名字和姓氏。然后我想改变他们的输入,以便它首先出现

时间:2016-03-25 16:23:11

标签: java

到目前为止,我有以下代码:

import java.util.*;

public class Names {
    public static void main(String [] args) { 
        Scanner input = new Scanner(System.in); 
        System.out.println("Enter your name: ");
        String name = input.next();
        changeNameFormat(name);
    }

    public static void changeNameFormat(String name) { 
        System.out.println(name.substring(0,20));
    }
}

我不确定,但我认为我需要使用一个数组,但是我不确定如何进行这种观察,因为我不知道每次用户输入是什么。

我想要发生的事例: 用户输入:

  

John Smith

我希望程序将其输出为:

  史密斯,约翰

3 个答案:

答案 0 :(得分:0)

让我们假设您要求用户输入逗号分隔的名字和姓氏。

例如:FirstName,LastName

在这种情况下,您可以使用逗号作为识别名字和姓氏的分隔符。

public static void changeNameFormat(String name) { 
    String [] splitName = name.split(",");
    //splitName[0] holds first name and splitName[1] holds last name
    System.out.println(splitName[1] + ", " + splitName[2]);
}

答案 1 :(得分:0)

不操纵/拆分一个 String的更简单方法是使用Scanner的默认分隔符(空格):

Scanner input = new Scanner(System.in);
System.out.println("Enter your name: ");
// assuming the input consists in name surname[return]
String name = input.next();
String surname = input.nextLine();
System.out.printf("%s, %s%n", surname.trim(), name.trim());
input.close();

答案 2 :(得分:0)

您可以在changeNameFormat

中执行以下操作
System.out.println(name.replaceAll("^(\\w+)\\s+(\\w+)$", "$2, $1"));

此外,请务必将input.next()更改为input.nextLine(),以便能够在一行中读取多个字词。有关正则表达式的更多详细信息,请参阅以下链接:

https://regex101.com/r/sA4xJ5/2