第一题
一、题目:
创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
二、源代码:
import java.util.*; public class Test { 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> a3=new ArrayList<String>(); a3.addAll(a1);//把a1所有元素插入a3中 a3.retainAll(a2);//取交集判断是否含有相同元素 System.out.println("交集是"+a3.toString()); HashSet<String> a4=new HashSet<String>(); a4.addAll(a1); a4.addAll(a2);//利用Set唯一值特点取并集 System.out.println("并集是"+a4.toString()); } }
三、运行结果:
第二题
一、题目:
编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
二、源代码:
import java.util.*; public class Zifu { public static void main(String[]args){ System.out.println("输入字符串"); Scanner reader=new Scanner(System.in); String str=reader.nextLine(); HashSet<Character> a1=new HashSet<Character>(); HashSet<Character> a2=new HashSet<Character>(); HashSet<Character> a3=new HashSet<Character>(); int number=0; int a=0; int A=0; for(int i=0;i<str.length();i++){ char c=str.charAt(i); if(c>='A'&&c<='Z'){//判断大写字母 A++; a1.add(c); }else if(c>='a'&&c<='z'){//判断小写字母 a++; a2.add(c); }else if(c>='0'&&c<='9'){//判断数字 number++; a3.add(c); } } System.out.println("大写字母共"+A+"个"+"分别为"+a1.toString()); System.out.println("小写字母共"+a+"个"+"分别为"+a2.toString()); System.out.println("数字共"+number+"个"+"分别为"+a3.toString()); } }
三、运行结果: