第2个回答 推荐于2016-01-25
做个简单的 ,希望对你有启示:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Test{
private Map<String,String> map = new HashMap<String, String>();
public Test(){
map.put("a", "啊");
map.put("bu", "不");
map.put("bo", "博");
map.put("chao", "超");
map.put("cha", "查");
map.put("che", "车");
}
public void search(String keyName){
Set<String> keySet = map.keySet();//获取key 的set集合
Iterator<String> it = keySet.iterator();//获取iterator遍历
while(it.hasNext()){
String key = it.next();
if(key.indexOf(keyName)>-1){//开头为
show(key);
}else if(key.indexOf(keyName.substring(0, 1))>-1 && key.contains(keyName.substring(1))){//智能匹配首字母开头,内容包含剩余字母
show(key);
}
}
}
public void show(String keyName){
if(keyName!=null){
System.out.println(keyName+"\t"+map.get(keyName));
}else{
Set<String> keySet = map.keySet();
Iterator<String> it = keySet.iterator();
String key = "";
while(it.hasNext()){
key = it.next();
System.out.println(key+"\t"+map.get(key));
}
}
}
public static void main(String[]args){
Test test = new Test();
String key = "";
Scanner scan = new Scanner(System.in);//获取输入
while(true){//循环
System.out.println("*******************************");
System.out.println("1.显示所有 2.查询 9.退出");
System.out.println("*******************************");
int input = scan.nextInt();
switch(input){
case 1:{
test.show(null);
break;
}
case 2:{
System.out.print("请输入关键字:");
key = scan.next();
test.search(key);
break;
}
case 9:System.exit(1);
default:break;
}
}
}
}本回答被提问者采纳