PTA(两道和电话号码有关的题)

开心,小伙伴们都被卡住了,结果我秒了哈哈哈哈哈哈!今天和电话号杠上了。

7-3 电话号码同步(Java) (10 分)

文件phonebook1.txt和phonebook2.txt中有若干联系人的姓名和电话号码。请你设计一个程序,将这两个文件中的电话号码同步。(所谓同步,就是将两个文件中的电话号码合并后剔除相同的人名和电话号码。请将同步后的电话号码按照姓名拼音顺序排序后保存到文件phonebook3.txt中。)

由于目前的OJ系统暂时不能支持用户读入文件和写文件,我们编写程序从键盘输入文件中的姓名和电话号码,当输入的单词为end时,表示文件结束。将同步后的电话号码按照姓名拼音顺序排序后输出。

输入格式:

张三 13012345678

李四 13112340000

王五 13212341111

马六 13312342222

陈七 13412343333

孙悟空 13512345555

end (表示文件phonebook1.txt结束)

张三 13012345678

孙悟空 13512345555

王五 13212341111

陈七 13412343333

唐三藏 13612346666

猪悟能 13712347777

沙悟净 13812348888

end (表示文件phonebook2.txt结束)

输出格式:

陈七 13412343333

李四 13112340000

马六 13312342222

沙悟净 13812348888

孙悟空 13512345555

唐三藏 13612346666

王五 13212341111

张三 13012345678

猪悟能 13712347777

输入样例:

Zhang3 13012345678
Li4 13112340000
Wang5 13212341111
Ma6 13312342222
Chen7 13412343333
SunWuKong 13512345555
end
Zhang3 13012345678
SunWuKong 13512345555
Wang5 13212341111
Chen7 13412343333
TangSanZang 13612346666
ZhuWuneng 13712347777
ShaWuJing 13812348888
end

输出样例:

Chen7 13412343333
Li4 13112340000
Ma6 13312342222
ShaWuJing 13812348888
SunWuKong 13512345555
TangSanZang 13612346666
Wang5 13212341111
Zhang3 13012345678
ZhuWuneng 13712347777
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

public class test3 {
   public static void main(String args[]){
	   Scanner in=new Scanner(System.in);
	   String string;
	   String string2;
	   Set set=new TreeSet();
	   Set set2=new TreeSet();
	   Set set3=new TreeSet();
	   while(in.hasNextLine()){
		   string=in.nextLine();
		   if(string.equals("end")){
			   break;
		   }
		   else{
			   set.add(string);
		   }
	   }
	   
	   while(in.hasNextLine()){
		   string2=in.nextLine();
		   if(string2.equals("end")){
			   break;
		   }
		   else{
			   set2.add(string2);
		   }
	   }
	   
	   set3.addAll(set);
	   set3.addAll(set2);
	  Iterator iterator=set3.iterator();
	  while(iterator.hasNext()){
		  System.out.println(iterator.next());
	  }
   }
}

7-4 查找电话号码 (10 分)

文件phonebook1.txt中有若干联系人的姓名和电话号码。

高富帅 13312342222

白富美 13412343333

孙悟空 13512345555

唐三藏 13612346666

猪悟能 13712347777

沙悟净 13812348888

请你编写一个简单的通信录程序,当从键盘输入一个姓名时查找到对应的电话号码并输出。如果没找到则显示Not found. 由于目前的自动裁判系统暂时不能支持用户读入文件,我们编写程序从键盘输入文件中的姓名和电话号码,当输入的名字为noname时,表示结束。noname后面有一个名字,需要查找其对应的电话号码。

输入格式:

高富帅 13312342222

白富美 13412343333

孙悟空 13512345555

唐三藏 13612346666

猪悟能 13712347777

沙悟净 13812348888

noname (表示结束)

唐三藏 (需要查找此人的电话号码)

输出格式:

13612346666 (输出对应的电话号码)

输入样例:

白富美 13412343333
孙悟空 13512345555
唐三藏 13612346666
猪悟能 13712347777
沙悟净 13812348888
noname
白骨精
Not found.

 

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
     public static void main(String args[]){
    	Scanner in=new Scanner(System.in);
    	Map map=new HashMap();
    	while(in.hasNext()){
    		String s=in.next();
    		if(s.equals("noname")){
    			break;
    		}
    		else{
    			String string=in.next();
    			map.put(s, string);
    		}
    	}
    	String tString=in.next();
    	if(map.containsKey(tString)){
    		System.out.println(map.get(tString));
    	}
    	else {
			System.out.println("Not found.");
		}
     }
}

 

你可能感兴趣的:(java)