例如,我的输入是
2 //这是变量T
5 2 5 //这些是3个空格分离的参数
1 2 4 5 5 //这是我的阵列
2 3 4 //这些是我的第二组参数
2 9 //和我的第二组数组
package hills;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class hillJump {
只是与我的程序相关的功能
static void fun(int N, int U, int D, int a[]){
int jump=0,i,para = 1;
for(i=0;i<4;i++){
if((a[i+1]-a[i])==0 || ((a[i+1]-a[i])<=U && (a[i+1]-a[i])>0) || (a[i+1]-a[i])>=D &&(a[i+1]-a[i])<0 ){
jump++;
}
else if(-1*(a[i+1]-a[i])>D && para==1){
para = 0;
jump++;
}
else{
break;
}
}
System.out.println(jump);
}
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
我试图按以下方式阅读输入,
InputStreamReader r = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(r);
int T = Integer.parseInt(br.readLine());
int arr[][] = new int[T][];
int p[][] = new int[T][]; // N U D
String s,hills;
String str[][] = new String[T][];
String str2[][] = new String[T][];
//reading from keyboard
for(int i=0;i<T;i++){
s = br.readLine();
str[i] = s.trim().split("\\s+");
hills = br.readLine();
str2[i] = hills.trim().split("\\s+");
}
取得输入后显示
**********
Exception in thread "main" java.lang.NullPointerException
at hills.hillJump.main(hillJump.java:50)
**********
//arranging data
for(int i=0;i<T;i++){
for(int j = 0;j<3;i++){
p[i][j] = Integer.parseInt(str[i][j]); // LINE 50 with error
}
for(int j=0;j<str2.length;j++){
arr[i][j] = Integer.parseInt(str2[i][j]);
}
}
//output
for(int i=0;i<T;i++){
fun(p[i][0], p[i][1], p[i][2], arr[i]);
}
}
}
我被困住了,不知道该怎么办?
我已经完成了以下答案
What is a NullPointerException, and how do I fix it?
仍然,我无法弄清问题是什么。 我使用bufferedReader从同一行获取输入,我怀疑错误是否是由readLine()函数引起的。