该计划跟踪从陈列室出售的汽车。 系统应该允许他
汽车详情包括底盘 number,make,model,engine_capacity和注册年份。国民身份证 买家的号码也与汽车的详细信息一起存储。所有这些 细节保存在一个字符串中,每个组件用'!'分隔。 系统应允许基于其注册号对汽车进行索引 (这是一个字符串)。 例如,如果出售的汽车具有以下详细信息:
注册号:1910JN2011 底盘号:23432-423 制造:宝马 型号:X5 发动机容量:3000毫升 年注册:2011年 买方ID:S012345678910
地图中的键值对将是: “1910JN2011” - > 23432-423!宝马!X5!3000!2011!S012345678910”
以下是我的建议:
public class dsa_qu2c {
//Function display(String G) takes as input the string and displays the attributes
public static void display(String G){
String Details[]= G.split("!");
//split() allows splitting of a string based "!" and returns an array of strings
System.out.println("Chassis Number:\t"+Details[0]);
System.out.println("Make:\t"+Details[1]);
System.out.println("Model:\t"+Details[2]);
System.out.println("Engine Capacity:\t"+Details[3]);
System.out.println("Year of Registration:\t"+Details[4]);
System.out.println("Buyer NIC:\t"+Details[5]);
}
public static int menu(){
Scanner sc= new Scanner(System.in);
int choice;
System.out.println("1:Add a car.");
System.out.println("2:Display car based on registration number");
System.out.println("3:Display all details of car");
choice=sc.nextInt();
sc.nextLine();
return choice;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String S= ""; //Compiled string to be stored as value in the hashmap
String R= ""; //Registration number to be stored as key in the hashmap
Scanner sc= new Scanner(System.in);
int choice;
HashMap<String, String> HMap= new HashMap<String, String>();
while(true){
choice= menu();
switch(choice)
{
case 1 : {
System.out.println("Enter registration number");
R= sc.nextLine();
System.out.println("Enter compiled string");
S= sc.nextLine();
HMap.put(R,S);
break;
}
case 2: {
System.out.println("Enter registration number");
R= sc.nextLine();
String value= HMap.get(R);
display(value);
break;
}
case 3: {
for(Map.Entry entry: HMap.entrySet()){
display((String)entry.getValue());
break;
}
}
case 4: {
System.exit(0);
}
default: {
break;
}
}
}
}
}
当我选择该选项时,只有系统必须检索所有汽车数据的Case 3
不起作用,因为没有显示任何内容。
答案 0 :(得分:2)
放置 break 。当您使用开关盒
时,删除中断实际上并不是良好的编码习惯答案 1 :(得分:1)
您应该从案例3中移除 break; :
case 3: {
for(Map.Entry entry: HMap.entrySet()){
display((String)entry.getValue());
//break;
}
}