title: Java StringTokenizer and storing Array
body: <p>I have programmed a Worker class and the driverclass for Worker..
  My working class is compiling fine and showing the desired output..
  But in array and StringTokenizer I am facing the main problem... And in line <strong>32</strong> of <strong>TestWorker.java</strong> there is an error, and I donot know why is it giving
  The question is...</p>
  
  <p>(i)Declare an array that can store the references of up to 5 <strong>Worker</strong> objects constructed with the data(name,workerID and hourlyRate).</p>
  
  <p>(ii)And now allow the users to enter workerID and hours repeatedly until user enter an empty string. Read these values and invoke the method <strong>addWeekly()</strong> on the appropriate object (by searching through the array to locate the object with the specified ID). If a nonexistent ID is entered, display an appropriate error message.</p>
  
  <p>(iii)Compute and display the salary for all the workers</p>
  
  <p>Please see my codes below.....</p>
  
  <p>//<strong>Worker.java</strong></p>
  
  <pre><code>public class Worker { 
          public final double bonus=100;    
          protected String name, workerID;
          protected double hourlyRate, totalHoursWorked,tax,grossSalary,netSalary;
  
          public Worker(){
  
      }
  public Worker(String name, String workerID, double hourlyRate){
      this.name = name;
      this.workerID = workerID;
      this.hourlyRate = hourlyRate;
  
      }
  
  public void addWeekly(double hoursWorked){
      this.totalHoursWorked = this.totalHoursWorked + hoursWorked;
      }
  
  public double gross(){
      grossSalary = (totalHoursWorked*hourlyRate);
              if(totalHoursWorked&gt;=150){
          grossSalary = grossSalary +100;
          }
          return  grossSalary;
          }
  public double netAndTax(){
      netSalary = grossSalary;
      if(grossSalary&gt;500){
          tax = (grossSalary - 500) *0.3;
          netSalary = (grossSalary - tax);
  
      }
      return netSalary;
   }
  public String getName(){
      return this.name;
  }
  
  public String getWorkerID(){
      return this.workerID;
  }
  
  public double getHourlyRate(){
      return this.hourlyRate;
  }
  
  public double getTotalHours(){
      return totalHoursWorked;
  }
  
  public double getGrossSalary(){
      return grossSalary;
      }
  
  public void addToGross(double amt){
      grossSalary = grossSalary + amt;
  }
  public void displaySalary(){
      System.out.print("Name: " +getName() + "\nID :" + getWorkerID() 
              + "\nHourly Rate: " + getHourlyRate()+ "\nTotalHours Worked" + getTotalHours() + 
              "\nGross pay" + getGrossSalary() + "\nTax: " + netAndTax() + 
              "\nNet Pay: " + netAndTax());
  }
  
  }
  </code></pre>
  
  <p>//<strong>TestWorker.java</strong></p>
  
  <pre><code>import java.util.Scanner;
  import java.util.StringTokenizer;
  public class TestWorker {
      public static void main(String args[]){
          Worker e = new Worker("John Major","s123",15.0);
          e.addWeekly(45);
          e.addWeekly(40);
          e.addWeekly(32);
          e.addWeekly(38);
          e.gross();
          e.netAndTax();
          e.displaySalary();
  
          Worker[] worklist = new Worker[5];
          worklist[0] = new Worker("Richard Cooper","s1235",20.0);
          worklist[1] = new Worker("John Major","s1236",18.0);
          worklist[2] = new Worker("Mary Thatcher","s1237",15.0);
          worklist[3] = new Worker("David Benjamin","s1238",16.0);
          worklist[4] = new Worker("Jack Soo","s1239",25.0);
  
      Scanner input = new Scanner(System.in);
      String name;
      double hourly;
  
      do{
          System.out.println("\n"); 
          System.out.print("Please Enter ID and hours-worked in a given week: ");
          name = input.nextLine();
  
          StringTokenizer string = new StringTokenizer(name,"+");
          String[] array  =new String[(string.countTokens)];
          for(int i=0;i&lt;=4;i++){
              if(array[0].equals(worklist[0])){
              e.getName();
              e.getWorkerID();
              e.addWeekly(Double.parseDouble(array[0]));
              e.gross();
              e.displaySalary();
  
              }
              else if(array[0].equals(worklist[1])){
              e.getName();
              e.getWorkerID();
              e.addWeekly(Double.parseDouble(array[1]));
              e.gross();
              e.displaySalary();
              }
  
              else if(array[0].equals(worklist[2])){
              e.getName();
              e.getWorkerID();
              e.addWeekly(Double.parseDouble(array[2]));
              e.gross();
              e.displaySalary();
              }
  
              else if(array[0].equals(worklist[3])){
              e.getName();
              e.getWorkerID();
              e.addWeekly(Double.parseDouble(array[3]));
              e.gross();
              e.displaySalary();
              }
  
              else if(array[0].equals(worklist[4])){
              e.getName();
              e.getWorkerID();
              e.getHourlyRate();
              e.addWeekly(Double.parseDouble(array[4]));
              e.gross();
              e.displaySalary();
              }
  
              else{
              System.out.println("Please Enter correct information");
          }
  
       }
  
          System.out.println();
          while(string.hasMoreElements()){
              System.out.println(string.nextElement());
          }
      }
      while(name.isEmpty()==false);
      }
  
  }
  </code></pre>