Keep getting a null pointer exception for some odd reason im
Keep getting a null pointer exception for some odd reason
im creating the variable and the object but it still isnt working
My code is below please help
package classes;
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
 import java.io.*;
 import java.util.*;
 import java.text.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
public class NewClass4
 {
private class Node
 {
 private String text;
 private int Hit;
 private int Miss;
 private Node next;
 public Node(String text, int Hit, int Miss, Node next)
 {
 this.text=text;
 this.Hit=Hit;
 this.Miss=Miss;
 this.next=next;
 }
public void incrementHit()
 {
 this.Hit = this.Hit+1;
 }
public void incrementMiss()
 {
 this.Miss = this.Miss+1;
 }
public String getText()
 {
 return this.text;
 }
public int getHit()
 {
 return this.Hit;
 }
public int getMiss()
 {
 return this.Miss;
 }
 }//end of node
private class LL
 {
 public Node head;
public LL()
 {
 head=null;
 }
public void insert(String text2, boolean isHit)
 {
 System.out.println(\"entered insert method\");
 Node temp=this.head;
 System.out.println(\"sent temp node to head\");
while((temp!=null) && (!temp.text.equals(text2)) )
 {
 temp=temp.next;
 }
if(temp==null)
 {
 // we did not find the string
 if(isHit)
 {
 this.head=new Node(text2,1, 0, this.head );
 }
else
 {
 this.head=new Node(text2,0, 1, this.head );
 }
 }
else
 {
if(isHit)
 {
 temp.incrementHit();
 }
else
 {
 temp.incrementMiss();
 }
 }
}//end of insert
public void printList()
 {
 Node temp=this.head;
 while(temp!=null)
 {
int Hit=temp.getHit();
 int Miss=temp.getMiss();
 double sucRate=Hit*100/(Hit+Miss);
System.out.println(temp.getText() + \" \" + sucRate);
 }
 }
}// end of LL
 private static LL myLL;
public NewClass4()
 {
this.myLL = new LL();
 }
 public static void main(String[] args)
 {
 SimpleDateFormat sdf = new SimpleDateFormat(\"dd/MMM/yyyy:HH:mm:ss\",Locale.ENGLISH);
 String myString = null;
 Pattern a = Pattern.compile(\"[0-9]{2}\\\\/?[A-Za-z]{3,4}\\\\/?[0-9]{4}[.,-:]{1}[0-9.,-:]{1,}\\\\s+\");
  Pattern d= Pattern.compile(\"\\\\s+\\\\/+[0-9.]{3}\\\\/+[A-Za-z]{1,}\\\\/+[A-Za-z.,-:%]{1,}\");
  Pattern f= Pattern.compile(\"\\\\s+[0-9]{3}\\\\s+\");
 String newLine;
try {
 File file = new File(\"myFile.txt\");
 FileReader fileReader = new FileReader(file);
 BufferedReader bufferedReader = new BufferedReader(fileReader);
 String line;
 while ((line = bufferedReader.readLine()) != null)
 {
 myString = line;
System.out.println(myString);
Matcher m1 = a.matcher(myString);
 Matcher m2 = d.matcher(myString);
 Matcher m3 = f.matcher(myString);
if (m1.find() && m2.find()&& m3.find())
 try {
 Date parsedDate = sdf.parse(m1.group());
 SimpleDateFormat print = new SimpleDateFormat(\"yyyy-MM-dd\'T\'HH:mm\");
 int responseCode = Integer.parseInt(m3.group().trim());
 System.out.println(print.format(parsedDate)+ \" \"+m2.group()+\" \"+responseCode);
 newLine = print.format(parsedDate)+ \" \"+m2.group();
// decide true or false
 if (responseCode >= 500 )
 {
 if (NewClass4.myLL == null)
 {
 System.out.println(\"Link List is empty\");
 }
NewClass4.myLL.insert(newLine, false);
 }
else
 {
 NewClass4.myLL.insert(newLine, true);
 }
} // end of second try
catch (ParseException e)
 {
 e.printStackTrace();
 }
 }// end of while
fileReader.close();
 //System.out.println(\"Contents of file:\");
}//end of first try
 catch (IOException e)
 {
 e.printStackTrace();
 }
//Classes.myLL.printList();
}// end of main
}// end of Classes
Solution
package classes;
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
 import java.io.*;
 import java.util.*;
 import java.text.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
public class NewClass4 {
    private class Node {
        private String text;
        private int Hit;
        private int Miss;
        private Node next;
       public Node(String text, int Hit, int Miss, Node next) {
            this.text = text;
            this.Hit = Hit;
            this.Miss = Miss;
            this.next = next;
        }
       public void incrementHit() {
            this.Hit = this.Hit + 1;
        }
       public void incrementMiss() {
            this.Miss = this.Miss + 1;
        }
       public String getText() {
            return this.text;
        }
       public int getHit() {
            return this.Hit;
        }
       public int getMiss() {
            return this.Miss;
        }
    }// end of node
   private class LL {
        public Node head;
       public LL() {
            head = null;
        }
       public void insert(String text2, boolean isHit) {
            System.out.println(\"entered insert method\");
            Node temp = this.head;
            System.out.println(\"sent temp node to head\");
            while ((temp != null) && (!temp.text.equals(text2))) {
                temp = temp.next;
            }
            if (temp == null) {
                // we did not find the string
                if (isHit) {
                    this.head = new Node(text2, 1, 0, this.head);
                } else {
                    this.head = new Node(text2, 0, 1, this.head);
                }
            } else {
                if (isHit) {
                    temp.incrementHit();
                } else {
                    temp.incrementMiss();
                }
           }
        }// end of insert
       public void printList() {
            Node temp = this.head;
            while (temp != null) {
                int Hit = temp.getHit();
                int Miss = temp.getMiss();
                double sucRate = Hit * 100 / (Hit + Miss);
                System.out.println(temp.getText() + \" \" + sucRate);
            }
        }
    }// end of LL
private static LL myLL;
   public NewClass4() {
        this.myLL = new LL();
    }
   public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat(\"dd/MMM/yyyy:HH:mm:ss\",
                Locale.ENGLISH);
        String myString = null;
        Pattern a = Pattern
                .compile(\"[0-9]{2}\\\\/?[A-Za-z]{3,4}\\\\/?[0-9]{4}[.,-:]{1}[0-9.,-:]{1,}\\\\s+\");
         Pattern d = Pattern
                .compile(\"\\\\s+\\\\/+[0-9.]{3}\\\\/+[A-Za-z]{1,}\\\\/+[A-Za-z.,-:%]{1,}\");
         Pattern f = Pattern.compile(\"\\\\s+[0-9]{3}\\\\s+\");
        String newLine;
        try {
            File file = new File(\"myFile.txt\");
            FileReader fileReader = new FileReader(file);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                myString = line;
                System.out.println(myString);
                Matcher m1 = a.matcher(myString);
                Matcher m2 = d.matcher(myString);
                Matcher m3 = f.matcher(myString);
                if (m1.find() && m2.find() && m3.find())
                    try {
                        Date parsedDate = sdf.parse(m1.group());
                        SimpleDateFormat print = new SimpleDateFormat(
                                \"yyyy-MM-dd\'T\'HH:mm\");
                        int responseCode = Integer.parseInt(m3.group().trim());
                        System.out.println(print.format(parsedDate) + \" \"
                                + m2.group() + \" \" + responseCode);
                        newLine = print.format(parsedDate) + \" \" + m2.group();
                        // decide true or false
                        if (responseCode >= 500) {
                            if (NewClass4.myLL == null) {
                                System.out.println(\"Link List is empty\");
                            }
                            NewClass4.myLL.insert(newLine, false);
                        } else {
                            NewClass4.myLL.insert(newLine, true);
                        }
                   } // end of second try
                    catch (ParseException e) {
                        e.printStackTrace();
                    }
           }// end of while
            fileReader.close();
            // System.out.println(\"Contents of file:\");
        }// end of first try
        catch (IOException e) {
            e.printStackTrace();
        }
       // Classes.myLL.printList();
    }// end of main
 }// end of Classes
myFile.txt
 2011-06-14T04:12
 2013-06-14T04:12
 2012-06-14T04:12
Note: Please make sure the path of the file is in the project location, i think that is the problem






