Java 尝试比较数组时出现空指针异常
因此,当我调用firstCompare方法时,我在这一行得到一个NullPointerExceptionJava 尝试比较数组时出现空指针异常,java,methods,null,Java,Methods,Null,因此,当我调用firstCompare方法时,我在这一行得到一个NullPointerExceptionif(numbers1[I].compareTo(numbers2[I])==0{ 但是,打印阵列表明它们已满。请帮助 import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStrea
if(numbers1[I].compareTo(numbers2[I])==0{
但是,打印阵列表明它们已满。请帮助
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class Fugitive {
public static int counter = 0;
public static int flag;
static String[] numbers1 = new String[35];
static String[] numbers2 = new String[35];
static String[] numbers3 = new String[35];
public static void main(String[] args) throws IOException {
loadNumbers();
firstCompare();
}
public static void loadNumbers() throws IOException {
String print;
BufferedReader in = new BufferedReader(new FileReader("creditCards1.txt"));
BufferedReader in2 = new BufferedReader(new FileReader("creditCards2.txt"));
BufferedReader in3 = new BufferedReader(new FileReader("creditCards3.txt"));
for (int i = 0; i < 34; i++){
//read in the data
numbers1[i] = in.readLine();
numbers2[i] = in2.readLine();
numbers3[i] = in3.readLine();
counter++;
}
in.close();
}
public static void firstCompare() {
boolean found = false;
for (int i = 0; i < 34; i++){
if(numbers1[i].compareTo(numbers2[i]) == 0){
flag = i;
found = true;
System.out.println(flag);
}
}
if (!found){
System.out.println("No matches");
}
}
}
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.FileWriter;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.io.PrintWriter;
公营逃犯{
公共静态整数计数器=0;
公共静态int标志;
静态字符串[]numbers1=新字符串[35];
静态字符串[]numbers2=新字符串[35];
静态字符串[]numbers3=新字符串[35];
公共静态void main(字符串[]args)引发IOException{
loadNumbers();
firstCompare();
}
public static void loadNumbers()引发IOException{
字符串打印;
BufferedReader in=new BufferedReader(新文件读取器(“creditCards1.txt”);
BufferedReader in2=新的BufferedReader(新文件读取器(“creditCards2.txt”);
BufferedReader in3=新的BufferedReader(新文件读取器(“creditCards3.txt”);
对于(int i=0;i<34;i++){
//读入数据
numbers1[i]=in.readLine();
numbers2[i]=in2.readLine();
numbers3[i]=in3.readLine();
计数器++;
}
in.close();
}
公共静态void firstCompare(){
布尔值=false;
对于(int i=0;i<34;i++){
if(numbers1[i])。与(numbers2[i])==0比较{
flag=i;
发现=真;
System.out.println(标志);
}
}
如果(!找到){
System.out.println(“无匹配项”);
}
}
}
您应该将循环中的数字100和10替换为名称。长度
我们必须查看名称
的定义和赋值位置,因为这可能是NPE的原因。我还应该注意数组[]name是一个全局变量我猜name
是null
。也许可以尝试调试器?另外,通常最好将数组作为参数传递给sort
方法。公共类联系人{//global variables public static int counter=0;static BufferedReader in=new BufferedReader(新的InputStreamReader(System.in));静态int x;静态字符串[]名称=新字符串[101];静态字符串[]编号=新字符串[101];
太好了。因此名称[0]
(通过名称[100]
)是空的。很高兴我们能提供帮助。