过滤掉数字Java

时间:2016-10-06 17:10:33

标签: java filter

我输了,所以

public class Filter {
public static void main(String[] args) {

// read in two command-line arguments
    int a = Integer.parseInt(args[0]);
    int b = Integer.parseInt(args[1]);

    // repeat as long as there's more input to read in
    while (!StdIn.isEmpty()) {

        // read in the next integer
        int t = StdIn.readInt();


        if (????) {
            StdOut.print(t + " ");
        }
    }
    StdOut.println(); 
} }

该程序应该以两个整数读取并使用它们来过滤掉StdIn。流,例如,如果参数是2,3和StdIn 5 7 8 9 10 4 6,那么它应打印出8 9 10,(跳过前2并打印下3)

3 个答案:

答案 0 :(得分:4)

为什么不添加一个计数器来知道你在哪个号码?

int i = 0;    
while (!StdIn.isEmpty()) {
    i++;
    // read in the next integer
    int t = StdIn.readInt();


    if ( i > a && i <= a + b) {
        StdOut.print(t + " ");
    }
}

答案 1 :(得分:0)

public class Filter {
public static void main(String[] args) {

// read in two command-line arguments
    int a = Integer.parseInt(args[0]);
    int b = Integer.parseInt(args[1]);

    // repeat as long as there's more input to read in
    while (!StdIn.isEmpty()) {


        // read in the next integer
        int t = StdIn.readInt();

        if(a-- > 0)
            continue;

        if (b-- > 0) {
            StdOut.print(t + " ");
        }
    }
    StdOut.println(); 
} }

答案 2 :(得分:-1)

?????需要--a <= 0 && --b >= 0

请注意,我正在利用&&被短路的事实。即--b为0或更低,才会评估--a

当然,最终int会在很长时间内输入蒸汽会话,但这仍然是一个非常酷的解决方案。