Java - 获取用户输入以访问阵列然后打印信息

时间:2016-03-30 00:41:34

标签: java

我正在制作一个程序,要求用户输入汽车模型示例本田,并访问本田类。在用户输入模型后,他被要求选择本田模型示例" Civic"。当他打字" Civic"不同的年份出现在2000,2013等。他选择了一年而不是关于那辆车出现的信息。

我已经有第一部分要求用户输入汽车模型并访问该课程。我没有计划添加太多信息,这只是我正在研究的项目。

import java.util.Scanner;

public class carMain {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        Honda hondaMain = new Honda("civic");

        System.out.println("Welcome to GoAuto.  Search from thousands of cars. \n");
        System.out.println("Please enter the brand of car you would like to search:");
        String carBrand = input.nextLine();

        if (carBrand.equalsIgnoreCase("Honda") == true) {

            System.out.println("You are now in the Honda class");
            //model type
            String carBrand1 = input.nextLine();
        }
    }
}

我假设我需要创建一个数组来存储有关汽车模型和年份的信息,但我不知道该怎么做。

public class Honda {
    String c;
    Honda(String civi) {
        c = civi;
    }

    void simplemsg() {
        System.out.println("You are now in Honda Database");
    }
}

2 个答案:

答案 0 :(得分:0)

对于初学者,我认为你会想要创建代表每个级别的类。比如..

public class Make(){
    //Add class properties
    List<Models> models = new ArrayList();


    public function Model get_model_by_name(String name) {
        //int index = search for matching Model.name..
        return this.models(index)
}

public class Model(){
    //Add class properties
    List<Years> years = new ArrayList();


    public function Model get_year_by_name(String name) {
        //int index = search for matching Year.name..
        return this.models(index)
}

public class Year(){
    //Add class properties
    String info;
    String info2;
}

然后在main方法中,你想要像这样初始化值..

//Initialize database
List<Make> database = new arrayList();
Make ford = new Make(<insert values for all properties>)
database.add(ford);

// Access ford..
System.out.println(ford.get_year_by_name(<whatever value user passed in>)

显然这是伪代码,你需要添加你想要的任何构造函数和属性,以及适当的getter和setter。理想情况是使用数据库查找或某种类型的枚举文件。

答案 1 :(得分:0)

你的equalsIgnoreCase

之后你不需要把== true
if(carBrand.equalsIgnoreCase("Honda")){

如果您想将年份和汽车信息存储在数组中,请查看二维数组。正如其他答案所说,虽然你可以研究一些更具凝聚力的方法来编码这个