第13周作业集
一、题目1
创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
二、代码
Test.java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
ArrayList<String> str1=new ArrayList<String>();
ArrayList<String> str2=new ArrayList<String>();
ArrayList<String> str3=new ArrayList<String>();
ArrayList<String> str4=new ArrayList<String>();
str1.add("chen");
str1.add("wang");
str1.add("liu");
str1.add("zhang");
str2.add("chen");
str2.add("hu");
str2.add("zhang");
str3.addAll(str1);
str3.retainAll(str2);
str4.addAll(str1);
str4.addAll(str2);
Set set=new HashSet<String>();
set.addAll(str4);
System.out.println("集合一:"+str1);
System.out.println("集合二:"+str2);
System.out.println("两个集合的交集为:"+str3);
System.out.println("两个集合的并集为:"+set);
}
}
三、运行结果

一、题目2
编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
二、代码
Test.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Test {
private static String String;
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
System.out.println("请输入一个字符串(该串至少由数字、大写字母和小写字母三种字符中的一种构成:");
String str=reader.nextLine();
HashMap<String,String> map = new HashMap<String, String>();
char[] s = str.toCharArray();//将字符串拆开存入数组
int NumberCount = 0,CapitaCount = 0,LowercaseCount = 0;
if(str.matches("\\w+")){//判断是否输入错误
for(int i=0;i<s.length;i++){
String c=Character.toString(s[i]);
if (Character.isDigit(s[i])) {
if(map.get("数字")==null){
map.put("数字", c);
}else{
map.put("数字", map.get("数字")+","+c);//同键值追加
}
NumberCount++;//储存数字个数
} else if (s[i] >= 'A' && s[i] <= 'Z') {
if(map.get("大写字母")==null){
map.put("大写字母", c);
}else{
map.put("大写字母", map.get("大写字母")+","+c);//同键值追加
}
CapitaCount++;//储存大写字母个数
} else if (s[i] >= 'a' && s[i] <= 'z') {
if(map.get("小写字母")==null){
map.put("小写字母", c);
}else{
map.put("小写字母", map.get("小写字母")+","+c);//同键值追加
}
LowercaseCount++;//储存小写字母个数
}
}
}else{
System.out.println("输入错误");
}
Set set = map.entrySet();//返回包含映射中项的集合
Iterator it = set.iterator();//用迭代器获取
while(it.hasNext()){
Map.Entry me = (Map.Entry)it.next();
System.out.print(me.getKey());
if(me.getKey().equals("数字")){
System.out.print("——共"+NumberCount+"个,");
}else if(me.getKey().equals("小写字母")){
System.out.print("——共"+CapitaCount+"个,");
}else if(me.getKey().equals("大写字母")){
System.out.print("——共"+LowercaseCount+"个,");
}
System.out.println("分别是:"+me.getValue());
}
}
}
三、运行结果



浙公网安备 33010602011771号