我正在使用Eclipse运行以下简单程序(测试扫描程序) 输入在运行配置中提及 - >参数部分为
23 98
程序没有终止 - 挂起而不产生+ b
import java.io.*;
import java.util.*;
public class InputExpt
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
//PrintWriter out = new PrintWriter(System.out);
int a = in.nextInt();
int b = in.nextInt();
in.close();
System.out.println(a+b);
}
}
当我不使用Scanner实用程序读取输入时,程序可以正常工作。使用下面的行显示121(a + b)
int a = Integer.parseInt(args[0]); // in.nextInt();
int b = Integer.parseInt(args[1]); //in.nextInt();
这是什么问题?
答案 0 :(得分:2)
程序输入和程序参数之间存在差异。
当您输入运行配置参数时,Eclipse会将它们添加到java
启动程序
java InputExpt 23 98
为了获得控制台输入,您将运行并输入数字(当您输入所需内容时按回车键)
> java InputExpt
> 23 98
>
程序参数作为元素绑定到args
数组,而程序输入在java进程输入流中流式传输,您可以通过System.in
获得。
答案 1 :(得分:1)
1)Scanner in = new Scanner(System.in);
上面的代码将从STDIN读取,并且您使用命令行参数传递数据
2)
int a = Integer.parseInt(args[0]); // in.nextInt();
int b = Integer.parseInt(args[1]); //in.nextInt();
上面的代码在您使用cmd-args
传递数据时有效