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
Post a Comment