博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

第13周作业集

Posted on 2019-11-28 15:53  王海楠  阅读(141)  评论(0编辑  收藏  举报

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

 二、代码

package com;

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

public class Test1 {

    public static void main(String[] args) {
        ArrayList a1 = new ArrayList();         // 创建ArrayList对象a1
        a1.add("chen");
        a1.add("wang");
        a1.add("liu");
        a1.add("zhang");
        ArrayList a2 = new ArrayList();         // 创建ArrayList对象a2
        a2.add("chen");
        a2.add("hu");
        a2.add("zhang");
        ArrayList a3 = new ArrayList();        // 创建ArrayList对象a3,求交集
        a3.addAll(a1);
        a3.retainAll(a2);                      // 删除线性表中除了包含在a2之外的元素
        System.out.println("输出交集为:" + a3);
        ArrayList a4 = new ArrayList();
        a4.addAll(a1);
        a4.addAll(a2);
        HashSet hs = new HashSet();            // 利用HashSet查重
        hs.addAll(a4);
        System.out.println("输出并集为:" + hs);

    }

}

 

三、运行结果

 

一、题目2:编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。

二、代码

package com;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Test2 {

    public static void main(String[] args) {

        Scanner reader = new Scanner(System.in);
        HashMap hm = new HashMap();
        System.out.println("输入一个字符串:");
        String s = reader.nextLine();
        int figure = 0;
        int capital = 0;
        int lowercase = 0;
        StringBuffer a=new StringBuffer();
        StringBuffer b=new StringBuffer();
        StringBuffer c=new StringBuffer();
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);

            if (ch >= '0' && ch <= '9') {
                figure++;                            // 计算数字个数
                a.append(ch+",");                     //将获得的字符ch放到a的后面,再加一个逗号分隔
                hm.put("数字:", a);                  //加入到HashMap中
            } else if (ch >= 'A' && ch <= 'Z') {
                capital++;                           // 计算大写字母个数
                b.append(ch+",");                    //将字符ch放到b的后面,再加一个逗号分隔
                hm.put("大写字母:", b);
            } else if (ch >= 'a' && ch <= 'z') {
                lowercase++;                                // 计算小写字母个数
                c.append(ch+",");                           //同上
                hm.put("小写字母:", c);
            }
        }
        Set set = hm.entrySet();                    // 返回包含映射中项的集合
        Iterator t = set.iterator();                 // 用Iterator得到HashMap中的项
        while (t.hasNext()) {                        // 显示元素
            Map.Entry me = (Map.Entry) t.next();                //输入
            System.out.println(me.getKey());
            if (me.getKey().equals("数字:")) {                      //做比较
                System.out.println("共" + figure + "个,");
            
            } 
            else if (me.getKey().equals("大写字母:")) {
                System.out.println("共" + capital + "个");
            
            } else if (me.getKey().equals("小写字母:")) {
                System.out.println("共" + lowercase + "个");
            }
            System.out.println("分别为:"+me.getValue());           //输出最终获得的内容
        }
    }
}

 

 

三、运行结果