到目前为止,我有以下代码:
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
我希望程序将其输出为:
史密斯,约翰
答案 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()
,以便能够在一行中读取多个字词。有关正则表达式的更多详细信息,请参阅以下链接: