我想知道如何只使用一个命令行通过终端输入两个值。 因此,用户不是写“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的东西?
答案 0 :(得分:2)
您可以将其添加到main()方法中:
public static void main(String[] args){
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
//do something with x and y
}
当您从命令行运行它时:
java your_class_name 5 2;
现在x = 5
和y = 2
但我想你可能想读一行输入的用户输入。 然后你可以这样做:
System.out.println("Enter x and y");
int x = inputScanner.nextInt();
int y = inputScanner.nextInt();
请注意,这仅在用户以5 2
形式输入输入时才有效,即两者之间有空格。如果您想在其间使用逗号,即5,2
,则必须更改Scanner
的分隔符:
System.out.println("Enter x and y");
inputScanner.useDelimiter(",");
int x = inputScanner.nextInt();
int y = inputScanner.nextInt();
答案 1 :(得分:1)
另一种方法是使用main的arguments变量。 (我将假设它是一个jar文件)
static void main (String[] args)
当用户使用以下命令运行程序时:
java -jar thisjar.jar 5 2
5和2将存储在String []中。 (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]);
答案 2 :(得分:0)
我实现这一目标的方法是将x和y读入名为xy的String中,然后我将它们拆分成这样的数组。
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"
答案 3 :(得分:0)
命令行参数答案是最简单的方法,但如果您想在提示用户输入之前对程序执行其他操作,则您需要转到另一条路线。我接近这个的方法是将输入扫描为字符串,告诉用户用逗号分隔x和y值。然后,您可以处理输入,将它在逗号分隔为x和y字符串并检查以确保x和y是整数(或浮点数),将它们转换为所需类型,或者如果输入输入错误则引发错误。无论程序使用它们,您都可以得到两点。我在Python中使用这种方法来获得去年在我的代数课程中使用的作业解算器。这个代码非常简单,所以我会让你照顾那个部分。