school/plant-information/MyGarden.java
2021-02-10 15:11:44 -05:00

92 lines
1.9 KiB
Java

import java.util.Scanner;
import java.util.ArrayList;
public class MyGarden{
public static void main(String[] args){
Scanner scnr = new Scanner(System.in);
ArrayList<Plant> myGarden;
myGarden = inputPlants(scnr);
printArrayList(myGarden);
}
public static void printArrayList(ArrayList<Plant> garden){
for (Plant plant:garden){
plant.printInfo();
}
}
public static ArrayList<Plant> inputPlants(Scanner scnr){
String pName, pCost, pAnnual, pColor;
String s;
String[] splitString;
boolean isInt;
Plant currPlant;
ArrayList<Plant> garden = new ArrayList<Plant>();
while(true){
//plant has name and cost 3 inputs
//flower has all 5 inputs
System.out.println("Please enter your plant: ");
System.out.println("type name cost (annual) (color)");
s = scnr.nextLine();
splitString = s.split(" ");
//Check for exit
if (isInteger(splitString[0])){
if (Integer.parseInt(splitString[0]) == -1){break;}
}
//Check if too many words or too few words
if (splitString.length > 5) {
System.out.println("Too many words!!!");
continue;
}
else if ((splitString.length !=3) &&
(splitString.length !=5)){
System.out.println("Expecting 3 or 5 words!; -1 to quit");
continue;
}
//Set generic strings to vars for readability
pName = splitString[1];
pCost = splitString[2];
// Plants take 3
if (splitString.length == 3){
currPlant = new Plant(pName, pCost);
garden.add(currPlant);
}
// Flowers take 5
else{
//get remaining strings
pAnnual = splitString[3];
pColor = splitString[4];
currPlant = new Flower(pName, pCost, pAnnual, pColor);
garden.add(currPlant);
}
System.out.println();
}
return garden;
}
public static boolean isInteger(String s){
boolean isInt = false;
try{
Integer.parseInt(s);
isInt = true;
}
catch (NumberFormatException ex){
}
return isInt;
}
}