如何解决“ java.lang.NumberFormatException:空”

时间:2019-08-18 11:07:43

标签: java numberformatexception

以下是我用Java编写的代码的一部分。我在一行中遇到错误 “ c = Integer.parseInt(br.readLine());” 请帮助

public class decipher
{
    public static void main (String[] args) throws IOException
    {

        BufferedReader br = new BufferedReader(new 
InputStreamReader(System.in));
        int [][] plainText= new int [16][16];
        int [][] key= new int [16][16];
        int [][] num= new int [16][16];
        int [][] finalKey= new int [16][16];
        int [][] cipherText= new int [16][16];
        int c=0,a=0,i,j,m,n;
        System.out.println("Enter cipher text character by character:");
        for (i=0;i<16;i++)
        {
            for (j=0;j<16;j++)
            {
                c= Integer.parseInt(br.readLine());
                if (c<257)

我遇到以下错误:

  

线程“ main”中的异常java.lang.NumberFormatException:在处为null   java.lang.Integer.parseInt(Integer.java:542)在   java.lang.Integer.parseInt(Integer.java:615)在   decipher.main(decipher.java:23)

1 个答案:

答案 0 :(得分:2)

根据 Java docs,readLine()返回:

  

包含行内容的字符串,不包含任何行终止字符;如果已到达流的末尾,则为null 不读取任何字符

因此,您的陈述等于Integer.parseInt(null)。这就是为什么存在 java.lang.NumberFormatException 的原因。

可以使用read()修复您的错误 而不是readLine(),因为您正在使用char输入。