如何使用输入创建对象

How to use input to create an object

我有一个 CarModel class,它包含三个字段:namefuelEconomygasTankSize

class CarModel {
    private String name;
    private double fuelEconomy;
    private double gasTankSize;

    CarModel(String name, double fuelEconomy, double gasTankSize) {
        this.name = name;
        this.fuelEconomy = fuelEconomy;
        this.gasTankSize = gasTankSize;
    }

    String getName() {
        return name;
    }

    double getFuelEconomy() {
        return fuelEconomy;
    }

    double getGasTankSize() {
        return gasTankSize;
    }
}

给定输入为由新行分隔的文本字符串:

MODEL Camry 6.5 58 
MODEL Civic 7.5 52
FINISH

如何在每次输入单词 MODEL 时创建一个新对象,将模型存储在数组中,使用以下单词作为这些字段的数据并在 [= 时结束程序17=] 在输入中?

在 main 方法中,尝试做这样的事情(使用 try with resources):

public static void main(String args[]){
String line;
List<CarModel> cars = new ArrayList<>();
  try(Scanner sc = new Scanner(System.in)){
     while(sc.hasNextLine()){
     line = sc.nextLine();
     String[] arr = line.split(" ");
     if(arr[0].equalsIgnoreCase("Model")){
        cars.add(new CarModel(arr[0], Double.parseDouble(arr[1]), Double.parseDouble(arr[2])));
      }else if(arr[0].equalsIgnoreCase("Finish"){
        break;
      }
    }
   }catch(ArrayIndexOutOfBoundsException ex){
     // do something here! 
   }catch(Exception ex){
     // do something here as well!
   }    
}

我会使用 String.split 方法。你传递一个分隔符,在你的例子中是一个 space 字符,然后该方法根据你提供的分隔符将字符串分成几部分。将输入输入到程序中取决于输入的来源,无论是通过文件、终端还是其他来源。

读取一行输入后,调用 String[] values = line.split(" ")

同样,如何读取输入取决于输入的来源,您尚未指定。