BufferedReader read() 不起作用



>我正在尝试从数组中获取输入并想要显示,但由于某种原因,值无法正确显示。

谁能帮我这里出了什么问题?

package BufferBuilder;
import java.io.*;
public class MyArray {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter n");
        int n = Integer.parseInt(br.readLine());
        int[] input  = new int[n];
        System.out.println("Enter input element");
        for(int i=0; i<n; i++){
            input[i] = br.read();
            System.out.println(input[i]);
        }
        //System.out.println(input[n]);
    }
}

在输出中:我输入 n - 4然后是数组值 3 、5、7、9和输出我得到 51325332

来自BufferedReaderbr.read()(查看下面/此处的 Java 文档(读取单个字符,因此您可以获得字符代码而不是它们表示的整数,以及介于两者之间的任何标点符号的代码。

您需要使用 br.readLine() 并将其转换为int值,如下所示:

input[i] = Integer.parseInt(br.readLine());

public int read(( 抛出 IOException : 读取单个字符

更新:

我收到java.lang.NumberFormatException错误您需要确保只输入数值而不输入空格,否则您可以使用以下代码trim空格:

input[i] = Integer.parseInt(br.readLine());

您应该在以下部分中使用readline而不是read:

for(int i=0; i<n; i++){
     input[i] = Integer.parseInt(br.readline());
     System.out.println(input[i]);
}

相关内容

最新更新