第13周作业集
题目1:创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
代码:
package sd; import java.util.*; public class Test1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<String> a1=new ArrayList<String>(); ArrayList<String> a2=new ArrayList<String>(); HashSet<String> a3=new HashSet<String>(); a1.add("chen"); a1.add("wang"); a1.add("liu"); a1.add("zhang"); a2.add("chen"); a2.add("hu"); a2.add("zhang"); a3.addAll(a1); a1.retainAll(a2); a3.addAll(a2); System.out.println("交集是:"+a1); System.out.println("并集是:"+a3); } }
运行结果:
题目2:编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
代码:
package sd; import java.util.*; public class Test1 { /** * @param args */ public static void main(String[] args) { HashMap a=new HashMap(); Scanner sc = new Scanner(System.in); String str = sc.nextLine(); int count = 0; int big = 0; int small = 0; StringBuffer ch1=new StringBuffer(); StringBuffer ch2=new StringBuffer(); StringBuffer ch3=new StringBuffer(); for(int i = 0; i<str.length();i++){ char c= str.charAt(i); if(c>='A'&& c<='Z'){ big++; ch1.append(c+","); }else if(c>='a'&& c<='z'){ small++; ch2.append(c+","); }else if(c>='0' && c<='9'){ count++; ch3.append(c+","); } } a.put(big,ch1 ); a.put(small,ch2 ); a.put(count,ch3 ); Set set=a.entrySet(); Iterator i =set.iterator(); while(i.hasNext()){ Map.Entry me=(Map.Entry)i.next(); if(me.getKey().equals(big)){ System.out.print("大写字母——共"+big+"个,"); }else if(me.getKey().equals(small)){ System.out.print("小写字母——共"+small+"个,"); }else if(me.getKey().equals(count)){ System.out.print("数字——共"+count+"个,"); } System.out.println("分别是:"+me.getValue()); } } }
运行结果: