题目1:创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
代码:
package zuoye; import java.util.*; public class jiaojibingji { public static void main(String[] args) { ArrayList <String> a1 = new ArrayList();//建立两个线性表 a1.add("chen"); a1.add("wang"); a1.add("liu"); a1.add("zhang"); ArrayList <String> a2 = new ArrayList(); a2.add("chen"); a2.add("hu"); a2.add("zhang"); ArrayList <String> jiaoji = new ArrayList<String>();//建立交集 ArrayList <String> bingji = new ArrayList<String>(a1);//用a1已有元素建立并集 for(int i=0;i<a2.size();i++) {//用循环判断,如果a1a2里面有相同的元素。则加到交集里 if(a1.contains(a2.get(i))) { jiaoji.add(a2.get(i)); } else {continue; } } for(int i=0;i<a2.size();i++) {//用循环判断,如果a1里面不包含a2的元素。则加到并集里 if(!a1.contains(a2.get(i))) { bingji.add(a2.get(i)); } else {continue; } } System.out.println("交集是:"+jiaoji+"并集是"+bingji); } }
运行结果:
题目2:编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
代码:
package zuoye; import java.util.*; public class homework2 { public static void main(String[] args) { ArrayList <Character> a1 = new ArrayList<Character>();//建立三个arraylist类,分别储存三种类型的字符。 ArrayList <Character> a2 = new ArrayList<Character>(); ArrayList <Character> a3 = new ArrayList<Character>(); System.out.println("请输入");//输入字符串。 Scanner scanner=new Scanner(System.in); String s=scanner.nextLine(); int daxie=0;//建立三个int型变量。为三种类型的字符计数 int xiaoxie=0; int num=0; String shuru = s; char a[]=shuru.toCharArray();//把输入的字符串转化为字符数组。 for(int i=0;i<shuru.length();i++) {//利用循环来统计三种字符。并把他们分别加到三个线性表中。 if(a[i]>='0'&&a[i]<='9') { num++; a1.add(a[i]); } else if(a[i]>='a'&&a[i]<='z') { xiaoxie++; a2.add(a[i]); } else if(a[i]>='A'&&a[i]<='Z') { daxie++; a3.add(a[i]); } else { System.out.println("出现了非法字符"); } } System.out.println("数字出现了"+num+"次,分别是"+a1); System.out.println("小写字母出现了"+xiaoxie+"次,分别是"+a2); System.out.println("大写字母出现了"+daxie+"次,分别是"+a3); } }
运行结果: