>我正在尝试从数组中获取输入并想要显示,但由于某种原因,值无法正确显示。
谁能帮我这里出了什么问题?
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
来自BufferedReader
的br.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]);
}