我是 Sedgwick (普林斯顿大学) 的算法1课程的学生,我想从标准输入读取一个整数,该整数代表将要输入的整数对的数量,然后从标准输入读取一组整数对列表。
例如:
3 //first integer represents number of pairs
12 34 //list of integer pairs
23 56
34 78
I was hoping to type:
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能够识别它?
java myProg 10 12 34 23 56 34 78
命令中的10 12 34 23 56 34 78
是java
程序的参数。第一个参数是类名,java
应该在其中搜索main
方法,其余的参数则被移动到String[] args
数组中。标准输入流连接到java
进程,可以通过System.in
引用。默认情况下,此流从控制台读取数据。 - Pshemo