java - 设计用户命令和多个输入

标签 java input java.util.scanner

我是一个JAVA初学者,我做了一些研究。结果发现没有这样的方法来处理这个问题。我被分配设计一个带有多个数据输入的提示命令,并且只有一个扫描仪对象。

现在,我已经实现了以下目标:

  1. 设置一个数组来保存NimPlayer对象。
  2. 设置 NimPlayer 类以创建唯一的 NimPlayer 对象。
  3. 设置计数器,用作索引。

    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 用户名、familyName、givenName

所以,这就是为什么我使用 next() 来标识第一个单词,并且空格是默认分隔符。

我不知道下一步该怎么做。我应该如何添加使用“,”分隔输入的功能。

感谢任何帮助。

最佳答案

您可以使用 Scanner.nextLine() 读取行。下面是一个示例,说明如何在一行中输入“用户名、姓氏、名字”并通过 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 - 设计用户命令和多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61249227/

相关文章:

java - 有人能解释一下为什么我在 Java 中遇到这个错误吗?

java - 如何在 Android 中从暂停或恢复状态恢复到确切的 Activity

input - 调用(读取)函数时 Allegro CL 卡住

输入 CSS 悬停状态之前的 HTML 标签

java - 为什么这个 for 循环不允许我在第一个循环中输入文本?

Java程序不喜欢这个词 "Scanner"

java - 使 MySQL 查询更快

java - 绝对最快的 Java HTML 转义函数

html - 输入框添加图标,图标后开始输入。

java - 在一行中读取多个坐标 (Java)