题目1:创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
源代码:zuoye.java
import java.awt.List; import java.util.ArrayList; public class zuoye { public static void main(String[] args){ ArrayList<String> a1=new ArrayList<String>(); a1.add("chen"); a1.add("wang"); a1.add("liu"); a1.add("zhang"); ArrayList<String> a2=new ArrayList<String>(); a2.add("chen"); a2.add("hu"); a2.add("zhang"); ArrayList<String> b1=new ArrayList<String>(a1); ArrayList<String> b2=new ArrayList<String>(a2); b1.removeAll(b2);//取并集,b1中移除与b2相同的部分 b2.addAll(b1);//把移除后的b1添加到b2中 System.out.println("并集为:"+b2);//输出b2 ArrayList<String> c1=new ArrayList<String>(a1); ArrayList<String> c2=new ArrayList<String>(a2); c1.retainAll(c2);//取交集,c1中保留和c2相同的部分 System.out.println("交集为:"+c1);//输出c1 } }
运行结果:
题目2:编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
import java.util.*; public class zuoye { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); System.out.println("请输入一个字符串:"); String s=scanner.next(); char c[]=s.toCharArray(); int Upper=0; int Lower=0; int Digital=0; Map<String,Integer> map= new HashMap<String,Integer>(); map.put("小写字母",Lower); map.put("大写字母",Upper); map.put("数字",Digital); StringBuffer a1 = new StringBuffer(); StringBuffer a2 = new StringBuffer(); StringBuffer a3 = new StringBuffer(); for(int i=0;i<c.length;i++) { if(c[i]>='a'&&c[i]<='z') { Lower=map.get("小写字母"); a1.insert(Lower,c[i]); map.put("小写字母", ++Lower); } if(c[i]>='A'&&c[i]<='Z') { Upper=map.get("大写字母"); a2.insert(Upper,c[i]); map.put("大写字母", ++Upper); } if(c[i]>='0'&&c[i]<='9') { Digital=map.get("数字"); a3.insert(Digital,c[i]); map.put("数字", ++Digital); } } System.out.println("小写字母共——"+Lower+"个,分别为:"+a1); System.out.println("大写字母共——"+Upper+"个,分别为:"+a2); System.out.println("数字共——"+Digital+"个,分别为:"+a3); } }
运行结果: