Java 是否可以使用扫描仪输入不同对象的值?

Java 是否可以使用扫描仪输入不同对象的值?,java,Java,我正在建立我的第一个程序来计算在手机游戏中对老板造成的伤害。它分别考虑了我的三个骑士的攻击、防御、健康和眩晕能力(动态),并用他们自己的攻击和防御(静态)与一个首领相匹配。我为Knight和Boss定义了各自的属性,但当我在主类中声明对象时,我不希望硬编码其中的值,而是让用户输入自己的值,以使整个程序动态化 我不确定如何利用扫描仪完成这项特殊任务 Knight knight1 = new Knight(15346, 17378, 1784, .25); Knight knight2 = new

我正在建立我的第一个程序来计算在手机游戏中对老板造成的伤害。它分别考虑了我的三个骑士的攻击、防御、健康和眩晕能力(动态),并用他们自己的攻击和防御(静态)与一个首领相匹配。我为Knight和Boss定义了各自的属性,但当我在主类中声明对象时,我不希望硬编码其中的值,而是让用户输入自己的值,以使整个程序动态化

我不确定如何利用扫描仪完成这项特殊任务

Knight knight1 = new Knight(15346, 17378, 1784, .25);

Knight knight2 = new Knight(13340, 15794, 1409, .25);

Knight knight3 = new Knight(13704, 15345, 1588, .25);

扫描仪允许您从输入源获取值。可以是用户输入,也可以是文件中的内容

扫描仪具有返回不同内置类型值的接口,具体取决于“扫描”源中的内容。在您的例子中,可以在循环中调用“nextInt()”来获取骑士所需的4个值。(记住还要调用nextLine()来使用用户键入的enter键)。当您收集了4个值时,您的代码将使用它们创建一个新的knight对象。扫描器不知道你的骑士等级,因此你只能用它来询问创建骑士所需的int参数


但老实说:手动提供此类数据时要小心。是否确实要在每次运行代码时键入16个值?因此,考虑编写代码,允许快速获取这些数据,例如通过使用配置文件。p> 扫描仪允许您从输入源获取值。可以是用户输入,也可以是文件中的内容

扫描仪具有返回不同内置类型值的接口,具体取决于“扫描”源中的内容。在您的例子中,可以在循环中调用“nextInt()”来获取骑士所需的4个值。(记住还要调用nextLine()来使用用户键入的enter键)。当您收集了4个值时,您的代码将使用它们创建一个新的knight对象。扫描器不知道你的骑士等级,因此你只能用它来询问创建骑士所需的int参数

但老实说:手动提供此类数据时要小心。是否确实要在每次运行代码时键入16个值?因此,考虑编写代码,允许快速获取这些数据,例如通过使用配置文件。p> 输入字符串行,如:“15346173781784,.25”,然后按

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String line = in.nextLine();
    String[] lineArray = line.split(",");
    double param0=Double.parseDouble(lineArray[0]);
    double param1=Double.parseDouble(lineArray[1]);
    double param2=Double.parseDouble(lineArray[2]);
    double param3=Double.parseDouble(lineArray[3]);

    Knight knight1 = new Knight(param0, param1, param2, param3);
}
输入字符串行,如:“15346173781784,.25”,然后按

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String line = in.nextLine();
    String[] lineArray = line.split(",");
    double param0=Double.parseDouble(lineArray[0]);
    double param1=Double.parseDouble(lineArray[1]);
    double param2=Double.parseDouble(lineArray[2]);
    double param3=Double.parseDouble(lineArray[3]);

    Knight knight1 = new Knight(param0, param1, param2, param3);
}