Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在一个命令行中输入两个值?_Java_Input_Terminal - Fatal编程技术网

Java 如何在一个命令行中输入两个值?

Java 如何在一个命令行中输入两个值?,java,input,terminal,Java,Input,Terminal,我想知道如何只使用一个命令行通过终端输入两个值。 因此,用户不会编写“5{ENTER}2{ENTER}”,而是接受“5,2{ENTER}”或“5,2{ENTER}” 基本上,如何做到这一点: System.out.println("Enter x value"); int x = inputScanner.nextInt(); System.out.println("Enter y value"); int y = inputScanner.nextInt(); 让用户在一行中同时输入x和y

我想知道如何只使用一个命令行通过终端输入两个值。 因此,用户不会编写“5{ENTER}2{ENTER}”,而是接受“5,2{ENTER}”或“5,2{ENTER}”

基本上,如何做到这一点:

System.out.println("Enter x value");
int x = inputScanner.nextInt();

System.out.println("Enter y value");
int y = inputScanner.nextInt();

让用户在一行中同时输入x和y?另一种方法是使用main的arguments变量。(我假设它是一个jar文件)

当用户使用以下命令运行程序时:

java -jar thisjar.jar 5 2 
5和2将存储到字符串[]中。(arg[0]=5)(arg[1]=2)。从那里,您可以执行以下操作:

int x = Integer.parseInt(arg[0]); //You have to parse the integer because it was stored as a string
int y = Integer.parseInt(arg[1]);

您可以将其添加到main()方法中:

当您从命令行运行它时:

java your_class_name 5 2;
现在
x=5
y=2

但我认为您可能需要阅读在1行中输入的用户输入。 然后你可以做:

System.out.println("Enter x and y");
int x = inputScanner.nextInt();
int y = inputScanner.nextInt();
请注意,只有当用户以
5 2
的形式输入输入时,这才起作用,即中间有空格。如果要在两者之间使用逗号,即
5,2
,则必须更改
扫描仪的分隔符

System.out.println("Enter x and y");

inputScanner.useDelimiter(",");

int x = inputScanner.nextInt();
int y = inputScanner.nextInt();

我实现这一点的方法是将x和y读入一个名为xy的字符串,然后将它们拆分成如下数组

System.out.println("Enter x and y values: ");
input = new Scanner(System.in); // Type the input like "x, y" (5, 5)
String xy = input.nextLine(); // Reads the x and y value as a string
String[] str = xy.split(","); // Takes the comma out and puts both values in the array
System.out.println("x: " + str[0] + ", y: " + str[1]); // the out looks like "x: 5, y: 5"

命令行参数答案是最简单的方法,但是如果您想在提示用户输入之前对程序执行其他操作,则需要执行另一种方法。我的方法是将输入扫描为字符串,告诉用户用逗号分隔x和y值。然后,您可以处理输入,将其在逗号之间拆分为x和y字符串,并检查以确保x和y是整数(或浮点数),将它们转换为所需的类型,或者在输入错误时引发错误。然后,无论程序使用它们的目的是什么,您都会得到您的两点。我在Python中使用了这种方法,用于去年在代数课上使用的家庭作业求解器。这方面的代码非常简单,所以我将让您处理这部分

System.out.println("Enter x and y");

inputScanner.useDelimiter(",");

int x = inputScanner.nextInt();
int y = inputScanner.nextInt();
System.out.println("Enter x and y values: ");
input = new Scanner(System.in); // Type the input like "x, y" (5, 5)
String xy = input.nextLine(); // Reads the x and y value as a string
String[] str = xy.split(","); // Takes the comma out and puts both values in the array
System.out.println("x: " + str[0] + ", y: " + str[1]); // the out looks like "x: 5, y: 5"