第13周作业集
题目1:创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
代码:
import java.util.*; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<String> a1=new ArrayList<String>(); a1.add("chen"); a1.add("wang"); a1.add("zhang"); a1.add("liu"); ArrayList<String> a2=new ArrayList<String>(); a2.add("chen"); a2.add("hu"); a2.add("zhang"); a1.retainAll(a2); System.out.println("两个list的交集为:"+a1.toString()); a1.addAll(a2); System.out.println("两个list的并集为:"+a1.toString()); } }
运行结果
题目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 Test { public static void main(String[] args) { System.out.println("请输入字符串:"); Scanner scanner = new Scanner(System.in); String r = scanner.nextLine(); char c[]=r.toCharArray(); int number=0; int low=0; int high=0; Map<String,Integer> map= new HashMap<String,Integer>(); StringBuffer s1 = new StringBuffer(); StringBuffer s2 = new StringBuffer(); StringBuffer s3 = new StringBuffer(); map.put("数字",number); map.put("小写字母",low); map.put("大写字母",high); for(int i=0;i<c.length;i++) { if(c[i]>='0'&&c[i]<='9') { number=map.get("数字"); s1.insert(number,c[i]); map.put("数字", number+=1); } else if(c[i]>='A'&&c[i]<='Z') { high=map.get("大写字母"); s2.insert(high,c[i]); map.put("大写字母", high+=1); } else if(c[i]>='a'&&c[i]<='z') { low=map.get("小写字母"); s3.insert(low,c[i]); map.put("小写字母", low+=1); } } System.out.println("数字——共"+number+"个,分别为:"+s1); System.out.println("大写字母——共"+high+"个,分别为:"+s2); System.out.println("小写字母——共"+low+"个,分别为:"+s3); } }
运行截图