我无法理解为什么我在以下代码(输出的第二行)中从 bufferedreader 得到 null,而它在某些地方工作正常(输出的第一行)。
我已经使用了几个 system.out.println 只是为了调试目的。
尽管 BufferedReader.readLine() 仅在到达流的末尾时才返回 null,但正在提供输入(如程序下方的输入所示)。请帮助我了解获取 null 的原因并提出解决方案。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.lang.Integer;
import java.io.*;
class TestClass {
public static void main(String args[] ) throws Exception {
//* Read input from stdin and provide input before running
List a2=new ArrayList();
String[] a1=new String[2];
int count=0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
/*for (String retval: line.split(" "))
a2.add(retval);*/
a1=line.split(" ");
//System.out.println("here 0"+a1[0]+" "+a1[1]);
/*int N = Integer.parseInt((a2.get(0)).toString());
int Q= Integer.parseInt((a2.get(1)).toString());*/
int N = Integer.parseInt(a1[0].toString());
int Q= Integer.parseInt(a1[1].toString());
System.out.println("here xxxxxxxx" + N +" " +Q);
String[] names=new String[N];
for(int i=0;i<N;i++){
//names[i] = (new BufferedReader(new InputStreamReader(System.in))).readLine();
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
names[i] = br1.readLine();
/*Scanner sc=new Scanner(System.in);
names[i]=sc.nextLine();*/
}
System.out.println("here 111" + names[0]);
for(int i=0;i<Q;i++) {
br = new BufferedReader(new InputStreamReader(System.in));
String line1 = br.readLine();
try{
System.out.println("here 1" + line1);
int M = Integer.parseInt(line1);
System.out.println("here 2");
if(M<=20){
System.out.println("here 3");
count++;
}
}
catch(Exception e){
System.out.println("here 4");
if(!((Arrays.asList(names)).contains(line))){
System.out.println("here 5");
count++;
}
}
}
System.out.println(count);
}
}
输入
输入的第一行将包含两个空格分隔的整数,表示 N 和 Q。
接下来的 N 行将包含字符串
接下来的 Q 行将包含一个整数或一个表示人名的字符串。必须根据它是aString 还是Integer 来实现不同的逻辑。
enter code here
输入和输出如下:
Input:
2 4
pranjul
sachin
21
19
pranjul
vipul
Output:
here xxxxxxxx2 4
here 111null
here 1null
here 4
here 5
here 1null
here 4
here 5
here 1null
here 4
here 5
here 1null
here 4
here 5
4