第13周作业集

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

package ccut.ch.thirteen.j;
import java.util.*;
public class Test1 {
    public static void main(String[] args) {
        ArrayList a1= new ArrayList();
        a1.add("chen");
        a1.add("wang");
        a1.add("liu");
        a1.add("zhang");            //向线性表a1中增加字符串
        ArrayList a2= new ArrayList();
        a2.add("chen");
        a2.add("hu");       
        a2.add("zhang");            //向线性表a2中增加字符串
        ArrayList b= new ArrayList();
        ArrayList j= new ArrayList();
        b.addAll(a1);           //将a1中的所有元素加入到b中
        for(int i=0;i<3;i++)
        {
            if(b.contains(a2.get(i)))   //判断b中是否包含a2的元素
            j.add(a2.get(i));           //将相同的元素放到j中
        }
        System.out.println("交集:"+j);
        for(int i=0;i<3;i++)
        {
            if(b.contains(a2.get(i)))    //判断b中是否包含a2的元素
                continue;               //包含就进行下一次循环
            else
            b.add(a2.get(i));           //不包含将元素加入到b中
        }
        System.out.println("并集:"+b);
    }
}

运行结果

第13周作业集_第1张图片

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

package ccut.ch.thirteen.j;

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) {
        System.out.println("输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成:");
        Scanner r = new Scanner(System.in);
        String s = r.nextLine();         //将用户输入的内容赋给字符串s
        char[] ch = s.toCharArray();     //定义一个字符数组存入数据
        int temp1 = 0, temp2 = 0, temp3 = 0;   //定义计数器
        HashMap hm1 = new HashMap();   //创建HashMap类对象hm1
        for (int i = 0; i < ch.length; i++)
            if (ch[i] >= 'A' && ch[i] <= 'Z') {
                temp1++;
                hm1.put(temp1, ch[i]);
            }                                   //遍历字符数组,找数组中的数字,计数并往hm1里存数字
        System.out.print("大写字母----共" + temp1 + "个," + "分别为" + " ");
        Set set1 = hm1.entrySet();              //返回包含映射中项的集合
        Iterator b2 = set1.iterator();          //迭代器遍历
        while (b2.hasNext()) {                  //显示元素
            Map.Entry me1 = (Map.Entry) b2.next(); //Map.Entry可以操作映射的输入
            System.out.print(me1.getValue());
        }
        System.out.println();
        HashMap hm2 = new HashMap();//创建HashMap类对象hm2
        for (int i = 0; i < ch.length; i++)
            if (ch[i] >= 'a' && ch[i] <= 'z') {
                temp2++;
                hm2.put(temp2, ch[i]);
            }                                   //遍历字符数组,找数组中的小写字母,计数并往hm2里存小写字母
        System.out.print("小写字母----共" + temp2 + "个," + "分别为" + " ");
        Set set2 = hm2.entrySet();              //返回包含映射中项的集合
        Iterator b3 = set2.iterator();          //迭代器遍历
        while (b3.hasNext()) {                  //显示元素
            Map.Entry me2 = (Map.Entry) b3.next();//Map.Entry可以操作映射的输入
            System.out.print(me2.getValue());
        }
        System.out.println();
        HashMap hm3 = new HashMap();//创建HashMap类对象hm3
        for (int i = 0; i < ch.length; i++)
            if (ch[i] >= '0' && ch[i] <= '9') {
                temp3++;
                hm3.put(temp3, ch[i]);
            }                                   //遍历字符数组,找数组中的大写字母,计数并往hm3里存大写字母
        System.out.print("数字----共" + temp3 + "个," + "分别为" + " ");
        Set set = hm3.entrySet();               //返回包含映射中项的集合
        Iterator b1 = set.iterator();           //迭代器遍历
        while (b1.hasNext()) {                  //显示元素
            Map.Entry me = (Map.Entry) b1.next();//Map.Entry可以操作映射的输入
            System.out.print(me.getValue());
        }
    }
}

运行结果

第13周作业集_第2张图片

你可能感兴趣的:(第13周作业集)