Java 打印用户输入/多维数组
如果这是一个重复的问题,我道歉。我不知道该找什么 这是一个作业,所以我真的希望朝着正确的方向努力,而不是仅仅得到答案。代码是反复要求用户输入一个州名,返回州鸟和州花。用户输入“无”后,将打印一份摘要,其中包含用户输入的每个状态的状态、鸟和花。当前,摘要仅打印用户输入的上一个状态的信息 很抱歉我的工作太草率了。我才刚刚开始学习Java 打印用户输入/多维数组,java,if-statement,multidimensional-array,Java,If Statement,Multidimensional Array,如果这是一个重复的问题,我道歉。我不知道该找什么 这是一个作业,所以我真的希望朝着正确的方向努力,而不是仅仅得到答案。代码是反复要求用户输入一个州名,返回州鸟和州花。用户输入“无”后,将打印一份摘要,其中包含用户输入的每个状态的状态、鸟和花。当前,摘要仅打印用户输入的上一个状态的信息 很抱歉我的工作太草率了。我才刚刚开始学习 public class StateInformation { private String[][] stateInfo = { {"Alaba
public class StateInformation {
private String[][] stateInfo = {
{"Alabama", "Yellowhammer", "Camellia"},
{"Alaska", "Willow Ptarmigan", "Alpine Forget-Me-Not"},
{"Arizona" , "Cactus Wren", "Saguaro Cactus Blossom"},
{"Arkansas", "Northern Mockingbird", "Apple Blossom"},
{"California", "California Quail", "California Poppy"},
{"Colorado", "Lark Bunting", "Rocky Mountain Columbine"},
{"Connecticut", "American Robin", "Mountain Laurel"},
{"Delaware", "Blue Hen Chicken", "Peach Blossom"},
{"Florida", "Northern Mockingbird", "Orange Blossom"},
{"Georgia", "Brown Thrasher", "Cherokee Rose"},
{"Hawaii", "Nene", "{Pua Aloalo"},
{"Idaho", "Mountain Bluebird", "Syringa"},
{"Illinois", "Greater Prairie-Chicken", "Violet"},
{"Indiana", "Northern Cardinal", "Peony"},
{"Iowa", "Eastern Goldfinch", "Wild Rose"},
{"Kansas", "Weatern Meadowlark", "Wild Native Sunflower"},
{"Kentucky", "Northern Cardinal", "Goldenrod"},
{"Louisana", "Brown Pelican", "Louisana Iris"},
{"Maine", "Black-Capped Chickadee", "White Pine Cone and Tassel"},
{"Maryland", "Baltimore Oriole", "Black-Eyed Susan"},
{"Massachusetts", "Black-Capped Chickadee", "Mayflower"},
{"Michigan", "American Robin", "Apple Blossom"},
{"Minnesota", "Common Loon", "Pink and White Lady Slipper"},
{"Mississippi", "Northern Mockingbird", "Magnolia"},
{"Missouri", "Eastern Bluebird", "White Hawthorn Blossom"},
{"Montana", "Western Meadowlark", "Bitterroot"},
{"Nebraska", "Western Meadowlark", "Goldenrod"},
{"Neveda", "Mountain Bluebird", "Sagebrush"},
{"New Hampshire", "Purple Finch", "Pink Lady's Slipper"},
{"New Jersey", "Eastern Goldfinch", "Violet"},
{"New Mexico", "Greater Roadrunner", "Yucca"},
{"New York", "Eastern Bluebird", "Rose"},
{"North Carolina", "Northern Cardinal", "Dogwood"},
{"North Dakota", "Western Meadowlark", "Wild Prairie Rose"},
{"Ohio", "Northern Cardinal", "White Trillium"},
{"Oklahoma", "Scissor-Tailed Flycatcher", "Mistletoe"},
{"Oregon", "Western Meadowlark", "Oregon Grape"},
{"Pennslyvania", "Ruffed Grouse", "Mountain Laurel"},
{"Rhode Island", "Rhode Island Red Chicken", "Violet"},
{"South Carolina", "Carolina Wren", "Yellow Jessamine"},
{"South Dakota", "Ring-necked Pheasant", "American Pasque"},
{"Tennessee", "Northern Mockingbird", "Passion Flower"},
{"Texas", "Northern Mockingbird", "Ennis"},
{"Utah", "California Gull", "Sego Lily"},
{"Vermont", "Hermit Thrush", "Red Clover"},
{"Virginia", "Northern Cardinal", "American Dogwood"},
{"Washington", "Willow Goldfinch", "Coast Rhododendron"},
{"West Virginia", "Northern Cardinal", "Rhododendron"},
{"Wisconsin", "American Robin", "Wood Violet"},
{"Wyoming", "Western Meadowlark", "Indian Paintbrush"},
};//End array initialization
public StateInformation() {
}
public String[][] getStateInfo(){
return stateInfo;
}
public void setState(String[][] state) {
this.stateInfo = stateInfo;
}
}
//End of Class
这是第二节课:
//Second Class
import java.util.Scanner;
public class TestStateInformation {
public static void main(String [] args) {
StateInformation states = new StateInformation();
String [][] state = states.getStateInfo();
//Inserting scanner & variable.
Scanner scanner = new Scanner(System.in);
while(true) {
//Prompt the user to input a state name.
System.out.println("Please enter a state or None to exit: ");
//Read the state entered by user, including leading/trailing white spaces.
String stateInfo = scanner.nextLine();
//If loop to end if None is entered.
if (stateInfo.equalsIgnoreCase("None")) {
break;
} else {
int position = getStatePosition(state, stateInfo);
if (position != -1) {
System.out.println("Bird: "
+ getBird(position, state)
+'\n' + "Flower: "
+ getFlower(position, state) + '\n');
}
if ((scanner.nextLine().equals("None"))) {
System.out.println("***** Thank you! *****" + '\n'
+ "A summary report for each State, Bird, and Flower is: "
+ '\n' + getState(position, state)+ ", "
+ getBird(position, state) + ", "+ getFlower(position, state)
+ '\n' + "Please visit our site again!");
}//end if loop for printing bird and flower of state entered by user.
}//End else loop
}//end if loop
}//end while loop
private static int getStatePosition(String state[][], String stateInfo) {
for (int i = 0; i < state.length; i++) {
if (stateInfo.equalsIgnoreCase(state[i][0])) {
return i;
}
}
return -1;
}
//Creates the position of the state name into [0]
private static String getState(int position, String [][] state) {
return state[position][0];
}
//Creates the position of the state bird into [1].
private static String getBird(int position, String [][] state) {
return state[position][1];
}
//Creates the position of the state bird into [2]
private static String getFlower(int position, String [][] state) {
return state[position][2];
}
}
//第二类
导入java.util.Scanner;
公共类TestStateInformation{
公共静态void main(字符串[]args){
StateInformation states=新的StateInformation();
字符串[][]state=states.getStateInfo();
//插入扫描仪和变量。
扫描仪=新的扫描仪(System.in);
while(true){
//提示用户输入状态名称。
System.out.println(“请输入状态或无以退出:”);
//读取用户输入的状态,包括前导/尾随空格。
String stateInfo=scanner.nextLine();
//如果没有输入,则循环结束。
if(stateInfo.equalsIgnoreCase(“无”)){
打破
}否则{
int position=getStatePosition(state,stateInfo);
如果(位置!=-1){
System.out.println(“Bird:
+getBird(位置、状态)
+“\n”+“花:”
+getFlower(位置、状态)+'\n';
}
如果((scanner.nextLine()等于(“无”)){
System.out.println(“******谢谢!*******”+”)\n
+各州、鸟类和花卉的摘要报告如下:
+'\n'+getState(位置,状态)+',“
+getBird(位置,状态)+“,”+getFlower(位置,状态)
+“\n”+“请再次访问我们的网站!”);
}//结束打印用户输入状态的花鸟的if循环。
}//结束else循环
}//结束if循环
}//边结束边循环
私有静态int getStatePosition(字符串状态[],字符串状态信息){
for(int i=0;i
要获取活动摘要,必须将每个状态存储在集合中。此处使用一组以避免重复。示例代码显示存储在集合中的每个状态,然后迭代集合,如下所示:
public class TestStateInformation {
public static void main(String[] args) {
StateInformation states = new StateInformation();
String[][] state = states.getStateInfo();
// Inserting scanner & variable.
Scanner scanner = new Scanner(System.in);
Set<Integer> positions = new HashSet<Integer>();
while (true) {
// Prompt the user to input a state name.
System.out.println("Please enter a state or None to exit: ");
// Read the state entered by user, including leading/trailing white
// spaces.
String stateInfo = scanner.nextLine();
// If loop to end if None is entered.
if (stateInfo.equalsIgnoreCase("None")) {
System.out.println(
"***** Thank you! *****" + '\n' + "A summary report for each State, Bird, and Flower is: \n");
for (Integer p : positions) {
System.out.println(getState(p, state) + ", " + getBird(p, state) + ", " + getFlower(p, state)
+ '\n');
}
System.out.println("Please visit our site again!");
break;
} else {
int position = getStatePosition(state, stateInfo);
if (position != -1) {
positions.add(position);
System.out.println("New size=" + positions.size());
System.out.println("Bird: " + getBird(position, state) + '\n' + "Flower: "
+ getFlower(position, state) + '\n');
}
}
}
}// end while loop
要获取活动摘要,必须将每个状态存储在集合中。此处使用一组以避免重复。
示例代码显示存储在集合中的每个状态,然后迭代集合,如下所示:
public class TestStateInformation {
public static void main(String[] args) {
StateInformation states = new StateInformation();
String[][] state = states.getStateInfo();
// Inserting scanner & variable.
Scanner scanner = new Scanner(System.in);
Set<Integer> positions = new HashSet<Integer>();
while (true) {
// Prompt the user to input a state name.
System.out.println("Please enter a state or None to exit: ");
// Read the state entered by user, including leading/trailing white
// spaces.
String stateInfo = scanner.nextLine();
// If loop to end if None is entered.
if (stateInfo.equalsIgnoreCase("None")) {
System.out.println(
"***** Thank you! *****" + '\n' + "A summary report for each State, Bird, and Flower is: \n");
for (Integer p : positions) {
System.out.println(getState(p, state) + ", " + getBird(p, state) + ", " + getFlower(p, state)
+ '\n');
}
System.out.println("Please visit our site again!");
break;
} else {
int position = getStatePosition(state, stateInfo);
if (position != -1) {
positions.add(position);
System.out.println("New size=" + positions.size());
System.out.println("Bird: " + getBird(position, state) + '\n' + "Flower: "
+ getFlower(position, state) + '\n');
}
}
}
}// end while loop
你似乎离得不远。你可以根据要求写出每个州的信息,对吗?所以你所缺少的只是结尾的那些信息的摘要 然后,您需要的是某种数据结构,以便存储有关用户询问的状态的信息。那么,每个问题只需要存储一个数字,即该状态的索引。如果您能够将所有这些信息存储在一个列表中,那么在最后,您可以简单地循环该列表,并打印出每个列表的相关信息 由于像
String[]
这样的常规数组无法调整大小,因此您可能需要使用像ArrayList
这样的东西。每次用户请求有关新状态的信息时,使用该选项存储一行新信息
注意:这假设您需要用户请求的日志;如果您不希望在用户多次请求相同的状态时重复相同的状态,您可以使用Dictionary的一些实现,这将只允许每个状态的一个实例包含在最终列表中
希望这是足够的信息来帮助你……你似乎离得不远。你可以根据要求写出每个州的信息,对吗?所以你所缺少的只是结尾的那些信息的摘要 然后,您需要的是某种数据结构,以便存储有关用户询问的状态的信息。那么,每个问题只需要存储一个数字,即该状态的索引。如果您能够将所有这些信息存储在一个列表中,那么在最后,您可以简单地循环该列表,并打印出每个列表的相关信息 由于像
String[]
这样的常规数组无法调整大小,因此您可能需要使用像ArrayList
这样的东西。每次用户请求有关新状态的信息时,使用该选项存储一行新信息
注意:这假设您需要用户请求的日志;如果您不希望在用户多次请求相同的状态时重复相同的状态,您可以使用Dictionary的一些实现,这将只允许每个状态的一个实例包含在最终列表中
希望这是足够的信息来帮助你