小试一下代码哦,写的不好见谅
package com.chinamobile.cmss.ms.TestMore;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
/*银行账户管理系统
* 问题分析:创建一个Map对象保存银行账户信息,包含姓名和金额,添加5个账户;
* 然后选择存款和取款,根据选择输入账户名和存取金额,使用cntainsKey()方法根据账户名判断账户是否存在
* 如果存在,则使用get()方法获取账户对应金额,并在此基础上增加和减少存取金额后,
* 输出账户金额,否则输出提示信息*/
public class BankAccount {
public static void main(String[] args) {
//创建map集合
Map<String, Integer> map = new HashMap<>();
map.put("孙悟空", 1000);
map.put("唐三藏", 1500);
map.put("猪八戒", 2000);
map.put("沙和尚", 1000);
map.put("白龙马", 800);
Set<String> strings = map.keySet();
Scanner scanner = new Scanner(System.in);
System.out.println("请选择存取款:1.存款,2.取款");
int select = scanner.nextInt();
if (select==1){
System.out.println("请输入姓名和存款金额,中间使用逗号隔开,如:小明,1000");
String deposit = scanner.next();
String[] account = deposit.split(",");
if (strings.contains(account[0])){
Integer money = map.get(account[0])+Integer.parseInt(account[1]);
System.out.println("账户"+account[0]+"余额为"+money);
}else {
System.out.println("该账户不存在");
}
}else {
System.out.println("请输入姓名和取款金额,中间使用逗号隔开,如:小明,1000");
String withdrawal = scanner.next();
String[] split = withdrawal.split(",");
if (strings.contains(split[0])){
if (map.get(split[0])<Integer.parseInt(split[1])){
while (true) {
System.out.println("余额不足,请重新输入取款金额");
int money = scanner.nextInt();
if (map.get(split[0]) >= money) {
money = map.get(split[0]) - money;
System.out.println("账户" + split[0] + "的余额为" + money);
break;
}
}
}else{
int money = map.get(split[0]) - Integer.parseInt(split[1]);
System.out.println("账户" + split[0] + "的余额为" + money);
}
}else {
System.out.println("该账户不存在");
}
}
}
}
//运行结果
请选择存取款:1.存款,2.取款
2
请输入姓名和取款金额,中间使用逗号隔开,如:小明,1000
白龙马,1000
余额不足,请重新输入取款金额
800
账户白龙马的余额为0
优化:Map集合中有判断map对象中是否包含指定key的方法:containskey(key)