设计用户命令和多个输入
design a user command and multiple inputs
我是 JAVA 初学者,我做了一些研究。原来没有这样的方法来处理这个问题。我被分配设计一个具有多个数据输入的提示命令,只有一个扫描仪对象。
现在,我已经做到了:
- 设置一个数组来保存NimPlayer对象。
- 设置 NimPlayer class 以创建唯一的 NimPlayer 对象。
设置计数器,用作索引。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print('$');
String input = in.next();
// initialize an array
NimPlayer [] playerList = new NimPlayer[10];
// create a position in the array
int addUserCount = 0;
if (input.equals("addplayer")) {
String userName = in.next();
String familyName = in.next();
String givenName = in.next();
addUserCount +=1;
playerList[addUserCount] = new NimPlayer(userName, familyName, givenName);
}
public class NimPlayer {
String userName;
String familyName;
String givenName;
public NimPlayer(String userName,String surName, String givenName) {
this.userName = userName;
this.familyName = surName;
this.givenName = givenName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setFamilyName(String familyName) {
this.familyName = familyName;
}
public void setGivenName(String givenName) {
this.givenName = givenName;
}
public String getUserName() {
return userName;
}
public String getfamilyName() {
return familyName;
}
public String getGivenName() {
return givenName;
}
}
目标是这样设计的:
addplayer userName,familyName,givenName
所以,这就是为什么我使用 next() 来识别第一个单词,并且 space 是默认分隔符。
我不知道下一步该怎么做。我应该怎么做才能添加一个使用“,”分隔输入的功能。
感谢任何帮助。
您可以使用 Scanner.nextLine() 阅读行。这是一个示例,您可以如何在一行中键入 "username, surname, givenname" 并被 String.split(",") 拆分。
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String line = s.nextLine();
String[] splittedLine = line.split(",");
for(int i = 0; i < splittedLine.length; i++) {
System.out.printf("splitted line: %d. %s \n", i, splittedLine[i].trim());
}
}
输入:
name, surename, username
输出:
splitted line: 1. name
splitted line: 2. surename
splitted line: 3. username
我是 JAVA 初学者,我做了一些研究。原来没有这样的方法来处理这个问题。我被分配设计一个具有多个数据输入的提示命令,只有一个扫描仪对象。
现在,我已经做到了:
- 设置一个数组来保存NimPlayer对象。
- 设置 NimPlayer class 以创建唯一的 NimPlayer 对象。
设置计数器,用作索引。
public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print('$'); String input = in.next(); // initialize an array NimPlayer [] playerList = new NimPlayer[10]; // create a position in the array int addUserCount = 0; if (input.equals("addplayer")) { String userName = in.next(); String familyName = in.next(); String givenName = in.next(); addUserCount +=1; playerList[addUserCount] = new NimPlayer(userName, familyName, givenName); } public class NimPlayer { String userName; String familyName; String givenName; public NimPlayer(String userName,String surName, String givenName) { this.userName = userName; this.familyName = surName; this.givenName = givenName; } public void setUserName(String userName) { this.userName = userName; } public void setFamilyName(String familyName) { this.familyName = familyName; } public void setGivenName(String givenName) { this.givenName = givenName; } public String getUserName() { return userName; } public String getfamilyName() { return familyName; } public String getGivenName() { return givenName; } }
目标是这样设计的:
addplayer userName,familyName,givenName
所以,这就是为什么我使用 next() 来识别第一个单词,并且 space 是默认分隔符。
我不知道下一步该怎么做。我应该怎么做才能添加一个使用“,”分隔输入的功能。
感谢任何帮助。
您可以使用 Scanner.nextLine() 阅读行。这是一个示例,您可以如何在一行中键入 "username, surname, givenname" 并被 String.split(",") 拆分。
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String line = s.nextLine();
String[] splittedLine = line.split(",");
for(int i = 0; i < splittedLine.length; i++) {
System.out.printf("splitted line: %d. %s \n", i, splittedLine[i].trim());
}
}
输入:
name, surename, username
输出:
splitted line: 1. name
splitted line: 2. surename
splitted line: 3. username