Java 空指针异常仅在比较而不打印值时发生
另一个不寻常的地方是,我为File_1指定了值,直到File_1[Length],但它打印出Length-1值。而我以同样的方式为文件2赋值,它打印得很好。请帮忙。我正在处理波斯语文本,所以可能会出现奇怪的字符,但我很确定这与索引值有关 不知道这是否是有意的,但在for循环中,您似乎增加了错误的值(i而不是j)Java 空指针异常仅在比较而不打印值时发生,java,nullpointerexception,comparison,Java,Nullpointerexception,Comparison,另一个不寻常的地方是,我为File_1指定了值,直到File_1[Length],但它打印出Length-1值。而我以同样的方式为文件2赋值,它打印得很好。请帮忙。我正在处理波斯语文本,所以可能会出现奇怪的字符,但我很确定这与索引值有关 不知道这是否是有意的,但在for循环中,您似乎增加了错误的值(i而不是j) for(i=0;i
for(i=0;i
请提供足够的代码以运行和复制。请张贴(强调“完成”)。打印值时打印出什么?stacktrace中有什么?看起来你的循环实际上是错误的:for(int j=0;j
…你真的想在这里增加i
而不是j
?@donfuxx把头撞在墙上谢谢!!!
public static void main(String[] args) throws FileNotFoundException, IOException {
// TODO code application logic here
BufferedReader in1 = new BufferedReader(new FileReader("595231gov_nov_13_assessed.txt"));
BufferedReader in2 = new BufferedReader(new FileReader("627231farsidetect.txt"));
String Id = null;
int count = 0;
String count_line=null;
while((count_line = in1.readLine()) != null){
if(count_line.contains("ID: "))
count ++;
}
System.out.println(count);
File1 [] File_1 = new File1[count];
in1 = new BufferedReader(new FileReader("595231gov_nov_13_assessed.txt"));
int i = 0;
String line = null;
String relation = null;
while ((line = in1.readLine()) != null && i != count){
if(line.contains("ID:")){
File_1 [i] = new File1();
File_1[i].ID = line;
}
else if(line.contains("Relation:")){
File_1[i].Relation = line;
}
else if(line.contains("Result:")){
File_1[i].Result = line;
i ++;
}
else if(line.contains("TP") || line.contains("FP") || line.contains("TN") || line.contains("FN")){
File_1[i-1].Comment = line;
}
}
line = null;
relation = null;
i =0;
int count2 = 0;
count_line=null;
while((count_line = in2.readLine()) != null){
if(count_line.contains("ID: "))
count2 ++;
}
System.out.println(count2);
in2 = new BufferedReader(new FileReader("/home/627231farsidetect.txt"));
File2 [] File_2 = new File2[count2];
while ((line = in2.readLine()) != null && i != count2){
if(line.contains("ID:")){
File_2 [i] = new File2();
File_2[i].ID = line;
}
else if(line.contains("Relation:")){
File_2[i].Relation = line;
}
else if(line.contains("Result:")){
File_2[i].Result = line;
i ++;
}
}
in1.close();
in2.close();
for (i=0; i<File_1.length - 1; i++)
{
System.out.println(File_1[i].ID);
System.out.println(File_1[i].Relation);
System.out.println(File_1[i].Result);
if(File_1[i].Comment != null)
System.out.println(File_1[i].Comment);
}
for (i=0; i<File_2.length; i++)
{
System.out.println(File_2[i].ID);
System.out.println(File_2[i].Relation);
System.out.println(File_2[i].Result);
}
for (i = 0; i < File_1.length-1; i++){
for(int j=0;j< File_2.length; i++){
if(File_1[i].ID != null && File_2[j].ID != null && File_1[i].Relation != null && File_2[j].Relation !=null){
if(File_1[i].ID.equals(File_2[j].ID) && File_1[i].Relation.equals(File_2[j].Relation)){
if(!(File_1[i].Result.equals(File_2[j].Result))){
System.out.println(File_1[i].ID);
System.out.println(File_1[i].Relation);
System.out.println(File_1[i].Result);
if(File_1[i].Comment != null)
System.out.println(File_1[i].Comment);
}
}
}
}
}
}
public static class File1{
public String ID;
public String Relation;
public String Result;
public String Comment;
public File1() {
this.Result = null;
this.ID=null;
this.Relation = null;
this.Comment = null;
}
}
public static class File2{
public String ID;
public String Relation;
public String Result;
public File2() {
this.Result = null;
this.ID=null;
this.Relation = null;
}
}
if(File_1[i].ID.equals(File_2[j].ID) && File_1[i].Relation.equals(File_2[j].Relation))
for (i = 0; i < File_1.length-1; i++)
{
for(int j=0;j< File_2.length; j++)
{
if(File_1[i].ID != null && File_2[j].ID != null && File_1[i].Relation != null && File_2[j].Relation !=null)
{
if(File_1[i].ID.equals(File_2[j].ID) && File_1[i].Relation.equals(File_2[j].Relation))
{
if(!(File_1[i].Result.equals(File_2[j].Result)))
{
System.out.println(File_1[i].ID);
System.out.println(File_1[i].Relation);
System.out.println(File_1[i].Result);
if(File_1[i].Comment != null)
System.out.println(File_1[i].Comment);
}
}
}
}
}