任务是检查no的第一个数字是否为零?

时间:2017-09-27 11:23:15

标签: java string nullpointerexception bufferedreader

我的代码如下:

import java.util.*;  
import java.io.*;  
public class Buffer
{
    public static void main(String args[]) throws Exception
    {            
        int T;
        Scanner sc = new Scanner(System.in);
        T = sc.nextInt();
        while(T > 0)
        {
            InputStreamReader r = new InputStreamReader(System.in);    
            BufferedReader br = new BufferedReader(r);           
            String no = "";

            no = br.readLine(); 
            char ch = no.charAt(0);

            if (ch == '0')
            {
                System.out.println("YES");
            }
            else
            {
                System.out.println("NO");
            }
            T--;
        }              
    }    
}    

请帮我处理我的代码,到底出了什么问题?

我收到了输出:

Run Time Error Exception in thread "main"<br>
     

Buffer.main中的java.lang.NullPointerException

1 个答案:

答案 0 :(得分:0)

我认为问题在于您同时使用了两个阅读器(Scanner和BufferedReader),实际上它超过了您使用的两个:每次进入循环时,您实例化一个尝试读取的BufferedReader System.in。

您是否正在尝试竞争性编程问题?如果是这样,我建议您坚持使用BufferedReader:

import java.util.*;
import java.io.*;
public class Buffer {

public static void main(String args[])throws Exception {

    int T;
    InputStreamReader r = new InputStreamReader(System.in);    
    BufferedReader br = new BufferedReader(r);
    T = Integer.parseInt(br.readLine());
    while(T>0)
    {      
      String no=br.readLine(); 
      char ch=no.charAt(0);

      if(ch=='0')
      {
       System.out.println("YES");
      }
      else
      {
        System.out.println("NO");
      }
      T--;
    }
  }
}