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的一些实现,这将只允许每个状态的一个实例包含在最终列表中

希望这是足够的信息来帮助你