如何使用输入创建对象
How to use input to create an object
我有一个 CarModel
class,它包含三个字段:name
、fuelEconomy
和 gasTankSize
。
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(" ")
同样,如何读取输入取决于输入的来源,您尚未指定。
我有一个 CarModel
class,它包含三个字段:name
、fuelEconomy
和 gasTankSize
。
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(" ")
同样,如何读取输入取决于输入的来源,您尚未指定。