第13周作业集
## 题目
创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
## 源代码
#
import java.util.ArrayList; /** * 求两线性表的交集及并集 * @author 喵 * @date 2019年12月1日下午1:10:59 */ public class LIstDemo { public static void main(String[] args) { String str1 = "chen"; String str2 = "wang"; String str3 = "liu"; String str4 = "zhang"; String str5 = "hu"; ArrayList<String> arr1 = new ArrayList<>(); arr1.add(str1); arr1.add(str2); arr1.add(str3); arr1.add(str4); ArrayList<String> arr2 = new ArrayList<>(); arr2.add(str1); arr2.add(str5); arr2.add(str4); ArrayList<String> arr3 = new ArrayList<>(arr1); arr3.retainAll(arr2); System.out.println("两者的交集为:" + arr3); arr2.removeAll(arr3); arr1.addAll(arr2); System.out.println("两则的并集:" + arr1); } }
#运行结果

## 题目二
编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,
统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;
大写字母——共2个,分别为A,W。
## 源代码
#
import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; /** * 求个数 * @author 喵 * @date 2019年12月1日下午1:42:24 */ public class CurrentNum { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("输入的内容必须只能包含数字、小写字母、大写字母:"); String str1 = input.nextLine(); /** 将字符串转换到数组中*/ List<String> ListStr1 = new ArrayList<>(); ListStr1.addAll(Arrays.asList(str1.split(""))); //三次转换 Map<String, Integer> result = new HashMap<>(); int upNum = 0, downNum = 0, nNum = 0; StringBuffer s1 = new StringBuffer(); StringBuffer s2 = new StringBuffer(); StringBuffer s3 = new StringBuffer(); result.put("大写字母", upNum); result.put("小写字母", downNum); result.put("数字", nNum); for (int i = 0; i < ListStr1.size(); i++) { String ch = ListStr1.get(i); if (ch.charAt(0) >= 'A' && ch.charAt(0) <= 'Z') { upNum = result.get("大写字母").intValue(); s1.insert(upNum, ch); result.put("大写字母", ++upNum); } if (ch.charAt(0) >= 'a' && ch.charAt(0) <= 'z') { upNum = result.get("小写字母").intValue(); s2.insert(downNum, ch); result.put("小写字母", ++downNum); } if (ch.charAt(0) >= '0' && ch.charAt(0) <= '9') { upNum = result.get("数字").intValue(); s3.insert(nNum, ch); result.put("数字", ++nNum); } } System.out.println("大写字母个数:" + result.get("大写字母") + "个, 分别是:" + s1); System.out.println("小写字母个数:" + result.get("小写字母") + "个, 分别是:" + s2); System.out.println("数字个数:" + result.get("数字") + "个, 分别是:" + s3); } }
# 测试结果


浙公网安备 33010602011771号