我正在参加Sedgwick(普林斯顿大学)的课程算法1,并尝试从标准输入读取一个整数,表示将输入的整数对的数量,然后是标准输入的整数对列表。
例如:
3 //first integer represents number of pairs
12 34 //list of integer pairs
23 56
34 78
我希望输入:
java myProg 3 12 34 23 56 34 78
在Windows命令行的命令提示符下首先读取3,然后循环并依次处理每一对。
视频中的代码是:
package getArgs;
public class getInput {
public static void main(String[] args) {
int N = StdIn.readInt(); //read first integer
while (!Stdin.isEmpty()){ // loop through pairs
int p = StdIn.readInt();
int q = StdIn.readInt();
//process p and q //process each pair
}
}
问题:
在代码中是Stdin.readInt()实际的java还是伪代码?
如果不是伪代码,我是否需要导入库以访问StdIn?
如果是伪代码,我是否使用Scanner类替换StdIn.readInt()?
程序的其余部分正常工作,那就是联合查找类算法,这个测试程序的驱动程序没有得到很好的解释并让我感到困惑。
这是我修改后的尝试 - 这很丑陋
public class getInput {
public static void main(String[] args) {
int i = 0; //counter;
int N = 0;
N = Integer.parseInt(args[0]); //Read first Integer
System.out.println(N ); //check it works
i = i + 1;
while ( i < N * 2 ){
int p = Integer.parseInt(args[i]); //get first of the next pair
i=i + 1;
int q = Integer.parseInt(args[i]); //get second of the next pair
System.out.println(p + " " + q ); //check
}
}
这有效但比StdIn更难 - 任何人都可以使用StdIn重写它以便java识别StdIn吗?
答案 0 :(得分:1)
我谷歌搜索StdIn java
,第二个结果是您所在大学的域名链接:http://introcs.cs.princeton.edu/java/stdlib/javadoc/StdIn.html
Google是你的朋友。
答案 1 :(得分:1)
让我们通过调用$(document).ready(function(){
//..your tab changing code..
});
尝试使用以下代码,看看会发生什么。
java getInput 10 12 34 23 56 34 78
这与Pshemo已经评论过的内容有关。
答案 2 :(得分:1)
(@ snickers10m做过的研究!)
实际Java代码。从docs Stdin.readInt执行此操作:
从标准输入读取下一个标记,将其解析为整数,然后 返回整数。
取决于Stdin.java
或Stdin.class
如何传递给您。如果它不在同一个包中,并且import
为它,那么你的类路径应该只有Stdin.class
。
(编辑:搜索更多内容,找到http://introcs.cs.princeton.edu/java/15inout/)
来自文档:
要使用这些库,请下载StdIn.java,StdOut.java, StdDraw.java和StdAudio.java与您的目录位于同一目录中 程序
N / A,因为它是实际代码
(编辑问题之后。)
您应该将程序从包中移出到与StdIn相同的包中
答案 3 :(得分:0)
查看此链接here,其中显示Stdin实际上是Scanner的包装类。如果你有,你可以使用它,否则使用扫描仪。如果你没有它,只需从该链接获取它并将其作为应用程序的一部分进行编译。
但是如果你将它们作为args []发送,你就不需要它了,你可以在其中引用字符串值为args 1,args [2]等等。
答案 4 :(得分:0)
那是伪代码。 Stdin不是JRE的Java类。
使用System的InputStream会更好。以下是如何实现它的一个简单示例:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter String");
String s = br.readLine();
System.out.print("Enter Integer:");
try{
int i = Integer.parseInt(br.readLine());
// ...
} catch(NumberFormatException nfe){
nfe.printStackTrace();
System.exit(-1);
}
答案 5 :(得分:0)
好的,我得到了它的工作,窃笑的评论是正确的。 StdIn课程由Sedgewick编写,并在他早期的书中发表。我只是创建了类StdIn和StdOut并将代码从互联网复制到空类文件中,然后就可以了。总结一下,它是由教授创建的一个类,用于简化从命令行的读取。
答案 6 :(得分:0)
为学生提供标准(标准图书馆) 它不是&#34;已安装的java库&#34;所以你可以下载Std库并在你的路径中声明它然后它可以工作