java bufferedreader 读取一行又一行,而不是在它下面

java bufferedreader read line after another line, not under it

当我使用缓冲读取器时,它会跳过一行然后读取用户输入的内容。有没有办法让它从诸如 System.out.print();?

之类的内容中读取控制台中一行之后的内容

示例: "Enter your age here: "(阅读此处)

而不是: "Enter your age here: "

(阅读此处)

我不一定需要使用 bufferedreader 来处理所有重要的事情,我只是希望它在行后而不是行下读取内容。

编辑:我手头的一个程序的代码,这是一个很好的例子。

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) {
        int y;
        int z;
        int x = 0;
        String line2 = "empty";
        String line = "empty";

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    BufferedReader br2 = new BufferedReader(
            new InputStreamReader(System.in));
    System.out.println("enter 2 numbers of which the first is larger than the second");
    try {
        line = br.readLine();
    }

    catch (Exception e) {
        e.printStackTrace();

    }
    try {
        line2 = br2.readLine();
    }

    catch (Exception e) {
        e.printStackTrace();

    }

    y = Integer.parseInt(line);
    z = Integer.parseInt(line2);

    if (y < 9 && y > 5 && z > 5 && z < 9) {
        if (y > z) {
            x = (int) ((Math.random() * (y - z)) + z);
        }
        if (z > y) {
            x = (int) ((Math.random() * (z - y)) + y);
        }
    }else System.out.println("only numbers between 5 and 9!");
    int[] getallen = new int[x];
    for (int i = 0; i < x; i++) {
        getallen[i] = (int) ((Math.random() * (y - z)) + z);
        System.out.println(getallen[i]);
    }

}

}

输出:

"enter 2 numbers of which the first is larger than the second
2
5
only numbers between 5 and 9!"

我想要的:

"enter 2 numbers of which the first is larger than the second 2 5
 only numbers between 5 and 9!"

变量名是荷兰语,但它们与我的问题并不相关。

我编写了一个简单的程序,只需将 System.out.println(...) 更改为 System.out.print(...),它就可以与 Eclipse 一起工作。但是你会遇到分隔数字的问题,例如Enter number(s): 1 2 3 将 return 1 2 3 作为一个字符串。

因此我建议你使用 Scanner 来读取输入,因为它有一个 nextInt() 方法,你可以不断地拉取数字(例如 Enter number(s): 1 2 3 会给你第一次调用 1、第二次调用 2 和第三次调用 3)

示例:

 public static void main(String[] args) {

    int number = 0;
    Scanner scanner = new Scanner(System.in);

    System.out.print("Enter number(s): ");
    while(scanner.hasNextInt()) {
        number = scanner.nextInt();
        System.out.println("Number was " + number);
    }   
}