Java 如何在一个命令行中输入两个值?
我想知道如何只使用一个命令行通过终端输入两个值。 因此,用户不会编写“5{ENTER}2{ENTER}”,而是接受“5,2{ENTER}”或“5,2{ENTER}” 基本上,如何做到这一点: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
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"