当前位置: 首页 > 知识库问答 >
问题:

每个框包含多个信息的数组

向俊贤
2023-03-14

所以我有一个练习问题,我应该用员工的信息创建一个数组,并将其传递给类;我的代码有一个问题,我似乎想不出来。

代码的目的是:将代码中看到的信息放入数组,然后传递给类中的方法,然后打印给用户。(类中的代码非常好,因此这里没有包括它)。

    // The Scanners.
    Scanner input = new Scanner(System.in);
    Scanner scan = new Scanner(System.in);
    
    // Taking Number Of Employees From The User.
    System.out.println("How many employees are there: ");
    int numberOfEmployees = input.nextInt();
    
    //Creating An Array With The Size Of Employees Entered By The User.
    Employee[] E = new Employee[numberOfEmployees];
    
    // Filling Out Information About Employees In Array.
    for(int i = 0; i <= E.length-1; i++){
        System.out.println("Enter employee " + i + "'s name: ");
        String name = scan.nextLine();
        
        System.out.println("Enter employee " + i + "'s birth date: ");
        String bday = scan.nextLine();
        
        System.out.println("Enter employee " + i + "'s salary: ");
        double salary = input.nextDouble();
        
        System.out.println("Enter employee " + i + "'s overtime: ");
        int overtime = input.nextInt();
        
        E[i] = (name, bday, salary, overtime);
    }
    
    System.out.println("Employee's Information"
            + "\n----------------------"
            + "\n----------------------");
    
    for(int i = 0; i <= E.length-1; i++){
        E[i].print();
    }
}

共有1个答案

夏侯旻
2023-03-14

这里有两个问题需要解决。

首先,不要创建多个scanner对象,读取system.in。我知道你这么做了,因为这个问题(检查一下):扫描器在使用next()或nextFoo()后跳过了nextLine()?-但是除了创建另一个扫描器之外,还有另一个解决方案。

第二个问题在这里:

E[i] = (name, bday, salary, overtime);
E[i] = new Employee(name, bday, salary, overtime);

在代码段中考虑这一点时:

Scanner scan = new Scanner(System.in);
// Taking Number Of Employees From The User.
System.out.println("How many employees are there: ");
int numberOfEmployees = scan.nextInt();
scan.nextLine(); // <- reads the newline from the console

//Creating An Array With The Size Of Employees Entered By The User.
Employee[] E = new Employee[numberOfEmployees];

// Filling Out Information About Employees In Array.
for(int i = 0; i <= E.length-1; i++){
    System.out.println("Enter employee " + i + "'s name: ");
    String name = scan.nextLine();
    
    System.out.println("Enter employee " + i + "'s birth date: ");
    String bday = scan.nextLine();
    
    System.out.println("Enter employee " + i + "'s salary: ");
    double salary = scan.nextDouble();
    
    System.out.println("Enter employee " + i + "'s overtime: ");
    int overtime = scan.nextInt();
    
    // create a new employee with the entered information and save in the array
    E[i] = new Employee(name, bday, salary, overtime);
}
 类似资料:
  • 我需要一些帮助来替换HashMap中的值。HashMap包含每个键的多个值,这些值是从ArrayList中添加的。我想做的是替换键中的一个元素。例如,用户输入键1和索引2,这将是该键的值[1]=[A, B, C, D],索引2将是字母“C”,我想用“X”替换它,这样输出将是[1]=[A, B, X, D],这将在一个同时循环中。 输出: 1 张 AB 光盘 2 张 AB 光盘 3 张 AB 光盘

  • 问题内容: 我必须对一个大型Java项目做一个一般性的说明,但是我对它的了解很少,我想知道是否有确定以下内容的准则: 每个包有多少个类可以被认为是正确的,低或高的(这个项目每个包有3.89个类,对我来说似乎太小了), 每个类有多少种方法?(该项目每个类有6.54个方法… 每个方法的行数?(此项目每种方法大约有7行(对我来说似乎不错,也许有点低)) 我应该指出,这个问题仅涉及体积。我有很多来自质量工

  • 我希望在每个数组中获取多个对象,但我的代码显示了单个对象的操作。下面是我的PHP代码,我如何添加另一个循环来获取多个对象 这是显示单个物体的结果

  • 我想包括以下内容: 在此中,每个 我试过这个: 但是,我得到了这个错误:

  • 问题内容: 如果我有一个简单的集合,例如: 如果我要搜索含有维生素B6的水果,则可以执行以下操作: 这样一来,我便可以看到我收藏的所有含有维生素A的水果。但是,我如何能够搜索含有多种维生素(例如维生素B6和C)的水果?我不能简单地搜索,因为那样会寻找数组,而不是独立的字符串。 在Cloud Firestore中甚至有可能吗?如果没有,还有其他替代方法吗? 问题答案: 通过在查询中链接条件来寻找匹配

  • 在Cloud Firestore中这甚至是可能的吗?如果没有的话,有没有其他方法可以做到这一点?