第十三周作业集
一、题目
(1)创建两个线性表,分别存储{"chen","wang","liu","zhang"}和{"chen","hu","zhang"}求这两个线性表的交集和并集
二、代码
public static void main(String[] args) { // TODO Auto-generated method stub List<String> list1 = new ArrayList<String>(Arrays.asList("chen","wang","liu","zhang")); List<String> list2 = new ArrayList<String>(Arrays.asList("chen","hu","zhang")); List<String> l1 = new ArrayList<String>(list1); List<String> l2 = new ArrayList<String>(list2); l2.removeAll(l1); l2.addAll(l1); System.out.println("两者并集为"+l2); List<String> l3 = new ArrayList<String>(list1); List<String> l4 = new ArrayList<String>(list2); System.out.println("两者的交集为"+jiaoji(l3,l4)); } public static List jiaoji(List l3,List l4){ List<String> m1 = new ArrayList<String>(); for(Iterator<String> it=l3.iterator();it.hasNext();){ String s = it.next(); if(l4.contains(s)){ m1.add(s); } } return m1; }
三、代码截图
题目二:
编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,
*如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,
* 并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,
* 则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,
* 分别为A,W。
代码段:
public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字符串"); String str = scanner.nextLine(); for (int i = 0; i < str.length(); i++) { list.add(str.charAt(i) + ""); } // 统计字符 int a = 0, b = 0, c = 0; ArrayList<String> l1 = new ArrayList<String>(); ArrayList<String> l2 = new ArrayList<String>(); ArrayList<String> l3 = new ArrayList<String>(); for (int i = 0; i < list.size(); i++) { String ch = list.get(i); if (ch.charAt(0) > '0' && ch.charAt(0) < '9') { a++; l1.add(ch); } else if (ch.charAt(0) >= 'a' && ch.charAt(0) <= 'z') { b++; l2.add(ch); } else if (ch.charAt(0) >= 'A' && ch.charAt(0) <= 'Z') { c++; l3.add(ch); } } System.out.println("数字:" + a + "个,分别是:" + l1); System.out.println("小写字母:" + b + "个,分别是:" + l2); System.out.println("大写字母:" + c + "个,分别是:" + l3); } }
运行结果: