Write a Java program the displays the State bird and flower. You should use your
ID: 3799046 • Letter: W
Question
Write a Java program the displays the State bird and flower. You should use your IDE for this exercise. You should also use Java classes to their full extent to include multiple methods and at least two classes. The program should prompt the user to enter a State and print both the State bird and flower. The user should be able to enter a State without worrying about case. (e.g. Users could enter Maryland, maryland, MARYLAND or any other possible combination of lower and upper case characters. States may also contain leading and trailing white spaces. Hint: Store the State information in a multi-dimensional array. The program should continue to prompt the user to enter a state until “None” is entered. After all States have been entered by the user, the program should display a summary of the results. You will need to do some research to find the State birds and flowers. Here is a sample run:
Enter a State or None to exit: Maryland Bird: Baltimore Oriole Flower: Black-eyed Susan Enter a State or None to exit: Delaware Bird: Blue Hen Chicken Flower: Peach Blossom Enter a State or None to exit: None **** Thank you ***** A summary report for each State, Bird, and Flower is: Maryland, Baltimore Oriole, Black-eyed Susan Delaware, Blue Hen Chicken, Peach Blossom Please visit our site again! Create a test class that constructs at least 3 States objects. For each of the objects constructed, demonstrate the use of each of the methods. Be sure to use your IDE to accomplish this assignment.
I have two classes, but need help with the main class.
I want to read a csv file in:
import java.util.*;
import java.io.*;
public class ReadCSVWithScanner {
public static void main(String[] args) throws IOException {
// open file input stream
BufferedReader reader = new BufferedReader(new FileReader(
"/home/robert/Documents/statesinfo.csv"));
// read file line by line
String line = null;
Scanner scanner = null;
int index = 0;
List<StatesData> stateList = new ArrayList<>();
while ((line = reader.readLine()) != null) {
StatesData statesAdd = new StatesData();
scanner = new Scanner(line);
scanner.useDelimiter(",");
while (scanner.hasNext()) {
String data = scanner.next();
if (index == 0)
statesAdd.setState(data);
else if (index == 1)
statesAdd.setStateBird(data);
else if (index == 2)
statesAdd.setStateFlower(data);
else
System.out.println("invalid data::" + data);
index++;
}
index = 0;
stateList.add(statesAdd);
}
//close reader
reader.close();
System.out.println(stateList);
}
}
A class to define methods:
public class StatesData {
private String state;
private String stateBird;
private String stateFlower;
public String getState() {
return state;
}
public void setState(String newState) {
this.state = newState;
}
public String getStateBird() {
return stateBird;
}
public void setStateBird(String bird) {
this.stateBird = bird;
}
public String getStateFlower() {
return stateFlower;
}
public void setStateFlower(String flower) {
this.stateFlower = flower;
}
/*
@Override
public String toString(){
return " ID="+getId()+"::Name"+getName()+"::Role="+getRole()+"::Salary="+getSalary();
}
*/
}
I just need help with a Main class
Explanation / Answer
public class StateInfo
{
private final String name;
private final String bird;
private final String flower;
private static final Map<String, StateInfo> states = new HashMap<>();
static {
String[][] stateInformation = new String[][] {
{"Alabama", "Yellowhammer", "Camelia"},
{"Alaska", "Willow Ptarmigan", "Forget-Me-Not"},
{"Arizona", "Cactus Wren", "Saguaro Cactus Blossom"},
{"Arkansas", "Mockingbird", "Apple Blossom"},
{"California", "California Valley Quail", "Golden Poppy"},
{"Colorado", "Lark Bunting", "Rocky Mountain Columbine"},
{"Connecticut", "Robin", "Mountain Laurel"},
{"Delaware", "Blue Hen Chicken", "Peach Blossom"},
{"Florida", "Mockingbird", "Orange Blossom"},
{"Georgia", "Brown Thrasher", "Cherokee Rose"},
{"Hawaii", "Nene", "Hawaiian Hibiscus"},
{"Idaho", "Mountain Bluebird", "Syringa, mock orange"},
{"Illinois", "Cardinal", "Violet"},
{"Indiana", "Cardinal", "Peony"},
{"Iowa", "Eastern Goldfinch", "Wild Praire Rose"},
{"Kansas", "Western Meadowlark", "Sunflower"},
{"Kentucky", "Cardinal", "Goldenrod"},
{"Louisiana", "Eastern Brown Pelican", "Magnolia"},
{"Maine", "Chickadee", "Pine Cone and Tassel"},
{"Maryland", "Baltimore Oriole", "Black-Eyed Susan"},
{"Massachusetts", "Chickadee", "Mayflower"},
{"Michigan", "Robin", "Apple Blossom"},
{"Minnesota", "Common Loon", "Pink and White Lady's Slippper"},
{"Mississippi", "Mockingbird", "Magnolia"},
{"Missouri", "Bluebird", "Hawthorn"},
{"Montana", "Western Meadowlark", "Bitterroot"},
{"Nebraska", "Western Meadowlark", "Goldenrod"},
{"Nevada", "Mountain Bluebird", "Sagebrush"},
{"New Hampshire", "Purple Finch", "Purple Lilac"},
{"New Jersey", "Eastern Goldfinch", "Violet"},
{"New Mexico", "Roadrunner", "Yucca Flower"},
{"New York", "Bluebird", "Rose"},
{"North Carolina", "Cardinal", "Flowering Dogwood"},
{"North Dakota", "Western Meadowlark", "Wild Praire Rose"},
{"Ohio", "Cardinal", "Scarlet Carnation"},
{"Oklahoma","Scissor-tailed Flycatcher","Oklahoma Rose"},
{"Oregon", "Western Meadowlark", "Oregon Grape"},
{"Pennsylvania", "Ruffed Grouse", "Mountain Laurel"},
{"Rhode Island", "Rhode Island Red", "Violet"},
{"South Carolina", "Great Carolina Wren", "Yellow Jessamine"},
{"South Dakota", "Ring-necked Pheasant", "Pasque Flower"},
{"Tennessee", "Mockingbird", "Purple Passionflower"},
{"Texas", "Mockingbird", "Bluebonnet Sp."},
{"Utah", "Common American Gull", "Sego Lily"},
{"Vermont", "Hermit Thrush", "Red Clover"},
{"Virginia","Cardinal"," American Dogwood"},
{"Washington", "Willow Goldfinch", "Coast Rhododendrum"},
{"West Virginia", "Cardinal", "Rhododendron"},
{"Wisconsin", "Robin", "Wood Violet"},
{"Wyoming", "Western Meadowlark", "Indian Paintbrush"}
};
for (String[] info : stateInformation) {
states.put(info[0].toLowerCase(), new StateInfo(info[0], info[1], info[2]));
}
}
public StateInfo(String name, String bird, String flower) {
this.name = name;
this.bird = bird;
this.flower = flower;
}
public static StateInfo getInfo(String stateName) {
return states.get(stateName.toLowerCase());
}
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
while (true) {
System.out.println("Enter a State or None to exit:");
String stateName = userInput.next();
if (stateName.equalsIgnoreCase("None")) {
break;
} else {
StateInfo stateInfo = getInfo(stateName);
if (stateInfo != null) {
System.out.println("Bird: " + stateInfo.bird);
System.out.println("Flower: " + stateInfo.flower);
} else {
System.out.println("Invalid State Entered");
}
}
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.