📄 addressbook.java
字号:
package exec.day1002;
import java.util.*;
public class AddressBook {
private HashMap map = new HashMap();
public static void main(String args[]){
AddressBook book = new AddressBook();
book.init();
if(args.length==0){
book.print();
}else if(args.length==1){
book.getKeyOrVlaue(args[0]);
}else if(args.length>1 && args.length%2==0){
book.save(args);
book.print();
}else{
throw new RuntimeException("参数个数错误!");
}
}
/**
* 保存电话记录
* @param str
*/
public void save(String str[]){
for(int i=0;i<str.length;i+=2){
if(validatePhoneNumber(str[i+1])){
System.out.println(str[i]);
System.out.println(str[i+1]);
map.put(str[i], str[i+1]);
}
}
}
/**
* 校验电话号码是否为手机号码
* @param num
* @return
*/
public boolean validatePhoneNumber(String num){
//判断长度是否为11位
if(num.length()!=11){
System.out.println("电话号码长度错误!");
return false;
}
//判断是否全部为数字
for(int i=0;i<num.length();i++){
if(!Character.isDigit(num.charAt(i))){
System.out.println("电话号码不全为数字!");
return false;
}
}
//判断是否以13或15开头
if(!num.startsWith("13") && !num.startsWith("15")){
System.out.println("电话号码开头错误!");
return false;
}
return true;
}
/**
* 根据传递的字符串查找对应的记录
* @param str
*/
public void getKeyOrVlaue(String str){
//str为姓名的情况
if(map.containsKey(str)){
System.out.println(str+": "+map.get(str));
}
//str为电话号码的情况
else if(map.containsValue(str)){
for(Object obj:map.keySet()){
String key = (String)obj;
String value = (String)map.get(key);
if(value.equals(str)){
System.out.println(key+": "+value);
}
}
}else{
System.out.println("查找不到 "+str+" 的对应记录!");
}
}
/**
* 初始化,添加5条记录
*/
public void init(){
map.put("Rain", "13899990000");
map.put("LiuDeHua", "135666677777");
map.put("LiMing", "13900002222");
map.put("WuYanZu", "13766668888");
map.put("Mandy", "13877662233");
}
/**
* 遍历通讯录,打印出所有记录
*/
public void print(){
Set set = map.keySet();
for(Object key:set){
System.out.println(key+": "+map.get(key));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -