Java Constructor & Arrays -


i learning java. class take online. assignment finished. trying figure out cause following.

the 2 main issues have are:

1)it seems storing 1 flower , ignoring other inputs. how can correct this?

2) display flower (e.g roses - 2): after displays flowers , count give me following error message.

flower pack:   daffodils  - 1  roses - 1  exception in thread "main" java.lang.nullpointerexception     @ assignment2.displayflowers(assignment2.java:203)     @ assignment2.<init>(assignment2.java:44)     @ assignment2.main(assignment2.java:9) 

i believe it's origination statement

flowername = searchingpack[i].getname(); 

here code:

    public class flower {     private string name;    private string color;    private string thorns;    private string smell;          public flower(){      }      public flower(string flowername, string flowercolor, string flowerthorns, string flowersmell){        name = flowername;       color = flowercolor;       thorns = flowerthorns;       smell = flowersmell;     }     public string getname(){        return name;    }     public void setname(string flowername){       name = flowername;      }     public string getcolor(){        return color;    }     public void setcolor(string flowercolor){       color = flowercolor;      }     public string getthorns(){        return thorns;    }     public void setthorns(string flowerthorns){       thorns = flowerthorns;      }     public string getsmell(){        return smell;    }     public void setsmell(string flowersmell){       smell = flowersmell;      }  }     import java.util.scanner;  public class assignment2 {     public static void main(string[] args){         new assignment2 ();     }      // act our program switchboard     public assignment2 (){          scanner input = new scanner(system.in);         flower[] flowerpack = new flower[25];          system.out.println("welcome flower pack interface.");         system.out.println("please select number options below");         system.out.println("");          while(true){             // give user list of options             system.out.println("1: add item pack.");             system.out.println("2: remove item pack.");             system.out.println("3: search flower.");             system.out.println("4: display flowers in pack.");             system.out.println("0: exit flower pack interfact.");              // user input             int userchoice = input.nextint();              switch(userchoice){                 case 1:                      addflower(flowerpack);                     break;                 case 2:                      removeflower(flowerpack);                     break;                 case 3:                      searchflowers(flowerpack);                     break;                 case 4:                      displayflowers(flowerpack);                     break;                 case 0:                      system.out.println("thank using flower pack interface. see again soon!");                     system.exit(0);             }         }      }      //add flowers     private void addflower(flower[] flowerpack) { //this storing 1 flower not else*********            scanner add = new scanner(system.in);          string name,color, thorns, smell;           system.out.println("\nenter name of flower add: ");          name = add.nextline();           system.out.println("\nenter color of flower: ");          color = add.nextline();           system.out.println("\nare there thorns present: yes or no ");          thorns = add.nextline();           system.out.println("\ndoes flower smell: yes or no ");          smell = add.nextline();           boolean flowerinserted = false;          for(int = 0; < flowerpack.length; i++){             if(flowerpack[i] == null){                flower newflower = new flower(name, color, thorns, smell);                flowerpack[i] = newflower;                flowerinserted = true;                break;             }          }            if(flowerinserted){             system.out.println("flower inserted.");             system.out.println();              }else{               system.out.println("\nflower pack full , not add flower.\n");             }    }        //remove flowers     private void removeflower(flower[] flowerpack) {           scanner remove = new scanner(system.in);         string removename, removecolor;          for(int = 0; < flowerpack.length; i++){             system.out.println("\nenter name of flower remove: ");             removename = remove.nextline();              system.out.println("\nenter color of flower: ");             removecolor = remove.nextline();              if (flowerpack[i] != null)             if (flowerpack[i].getname().equalsignorecase(removename) && flowerpack[i].getcolor().equalsignorecase(removecolor)){                for(int j = i; j < flowerpack.length - 1; j++) {                          flowerpack[j] = flowerpack[j + 1];                         }                         flowerpack[flowerpack.length - 1] = null;                   system.out.println("\nflower removed.\n");                   break;                   }              else{                system.out.println("\nthat flower not found.\n");                }        }    }        //search flowers     private void searchflowers(flower[] flowerpack) {        scanner flowersearch = new scanner(system.in);       string name, color, thorns, smell;       int options;        system.out.println("1: seach name.");       system.out.println("2: seach color.");       system.out.println("3: seach flowers thorns.");       system.out.println("4: seach flowers smell.");       options = flowersearch.nextint();        flowersearch.nextline();              boolean found = false;       for(int = 0; < flowerpack.length; i++){          if(options == 1){             system.out.println("\nenter name of flower: ");             name = flowersearch.nextline();             if (flowerpack[i] != null) {             if (flowerpack[i].getname().equalsignorecase(name)) {                found = true;                system.out.println("\nflower found @ index " + + ".");                break;             }             }          }          if(options == 2){             system.out.println("\nenter color of flower: ");             color = flowersearch.nextline();             if (flowerpack[i] != null) {             if (flowerpack[i].getcolor().equalsignorecase(color)) {                found = true;                system.out.println("\nflower found @ index " + + ".");                break;             }             }          }          if(options == 3){             system.out.println("\nflowers thorns or no thorns: yes or no ");             thorns = flowersearch.nextline();             if (flowerpack[i] != null) {             if (flowerpack[i].getthorns().equalsignorecase(thorns)) {                found = true;                system.out.println("\nflower found @ index " + + ".");                break;             }             }          }          if(options ==4){             system.out.println("\nflower aroma or no aroma: yes or no ");             smell = flowersearch.nextline();             if (flowerpack[i] != null) {             if (flowerpack[i].getsmell().equalsignorecase(smell)) {                found = true;                system.out.println("\nflower found @ index " + + ".");                break;                   }                   }          }        if(!found){         system.out.println("\nsorry, no match found.");             }        }    }        //display flowers      private void displayflowers(flower[] flowerpack) {        system.out.println("flower pack: \n");          flower[] searchingpack = new flower[flowerpack.length];         (int = 0; < searchingpack.length; i++) {                      searchingpack[i] = flowerpack[i];             }        string flowername = null;          int count = 0;             for(int = 0; < searchingpack.length; i++) {                    = 0;                    flowername = searchingpack[i].getname(); // line giving me error!***********************************                 if (searchingpack[i].getname() == null || searchingpack[i].getname().equals(null)) {                      break;                  }                  (int j = 0; j < flowerpack.length; j++) {                          if (flowerpack[j] != null) {                              if (flowerpack[j].getname().equalsignorecase(flowername)) {                                   count++;                                   }                              }                          }                        (int k = 0; k < count; k++) {                                 silentremove(searchingpack, flowername);                            }                          system.out.println(flowername + " - " + count);                         system.out.println();                             count = 0;                       }                   }         private void silentremove(flower flowerpack[], string flowername) {             (int = 0; < flowerpack.length; i++) {                if (flowerpack[i] != null) {                     if (flowerpack[i].getname().equalsignorecase(flowername)) {                       (int j = i; j < flowerpack.length - 1; j++) {                             flowerpack[j] = flowerpack[j + 1];                            }                             flowerpack[flowerpack.length - 1] = null;                            break;                           }                      }                   }             }          } 

does need array? list<flower> more appropriate here. happening you're adding 2 flowers, looping on 25 elements in array, of still null


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -