第13周作业
题目一:
创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
代码:
import java.util.*;
public class test1 {
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> u=new ArrayList<String> ();//并集,∪
ArrayList<String> n=new ArrayList<String> ();//交集,∩
/*下程序段求交集:对长度大的列表a1遍历,每次遍历时,与a2中的元素作比较,
如果a2中存在a1的元素,将这个元素存到n中*/
for(int i=0;i<a1.size();i++){
if(a2.contains(a1.get(i))){
n.add(a1.get(i));
}
}
System.out.println("交集为"+n.subList(0, n.size()));
/*下程序段求并集:先将a1的元素添加到u中,对a2遍历,如果u中存在a2中的元素,进行下一次循环,
如果u中没有a2中的元素,将此元素存入u中*/
u.addAll(a1);
for(int i=0;i<a2.size();i++){
if(u.contains(a2.get(i)))
continue;
else
u.add(a2.get(i));
}
System.out.println("并集为"+u.subList(0, u.size()));
}
}
运行结果:

题目二:
编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
代码:
import java.util.*;
public class test2 {
public static void main(String[] args) {
//定义String类型的字符串,并赋值
System.out.println("请输入需要判断的 字符串:");
Scanner r=new Scanner(System.in);
String s=new String();
s=r.nextLine();
//new三个字符列表,分别存储大写字母、小写字母、数字字符
ArrayList<Character> number=new ArrayList<Character>();
ArrayList<Character> upper=new ArrayList<Character>();
ArrayList<Character> lower=new ArrayList<Character>();
//对字符串遍历,将单个字符存储到对应的字符列表中
for(int i=0;i<s.length();i++){
if(s.charAt(i)>='a'&&s.charAt(i)<='z'){
lower.add(s.charAt(i));
continue;
}
if(s.charAt(i)>='A'&&s.charAt(i)<='Z'){
upper.add(s.charAt(i));
continue;
}
if(s.charAt(i)>='0'&&s.charAt(i)<='9'){
number.add(s.charAt(i));
continue;
}
}
//输出结果
System.out.println("大写字母有"+upper.size()+"个,分别是"+upper);
System.out.println("小写字母有"+lower.size()+"个,分别是"+lower);
System.out.println("数字字符有"+number.size()+"个,分别是"+number);
}
}
运行结果:


浙公网安备 33010602011771号