第13周作业集

一、题目1

  创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。

二、代码

Test3.java

/*
 * 创建一个测试类,声明四个ArrayList对象,存入元素,用方法求出交并集,输出结果
 */
package H;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

public class Test3 {

    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);//删除str1和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。

二、代码

Test4.java

/*
 * 创建一个测试类,声明三个列表对象,判断是否为数字,大写字母或小写字母,并计算出个数,输出结果
 */
package H;

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 Test4 {

    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());   
            }
    }

}

 

三、运行结果

 

 

 

 

 

 

 

posted @ 2019-11-26 20:51  魏一人  阅读(248)  评论(0编辑  收藏  举报