第13周作业集

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

代码

1.Test.java

import java.util.HashSet;
public class Test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HashSet H1 = new HashSet();    //创建第一个线性表
		H1.add("chen");
		H1.add("wang");
		H1.add("liu");
		H1.add("zhang");
		System.out.println("线性表1中内容为:"+H1);
		HashSet H2 = new HashSet();   //创建第二个线性表
		H2.add("chen");
		H2.add("hu");
		H2.add("zhang");
		System.out.println("线性表2中内容为:"+H2);
		HashSet J = new HashSet();
		J.addAll(H1);     //将第一个线性表中元素加入J线性表中
		J.retainAll(H2);    //剔除与第二个线性表不相同的元素
		System.out.println("交集为:"+J);
		HashSet B = new HashSet();
		B.addAll(H1);      //将第一个线性表中元素加入J线性表中
		B.addAll(H2);     //利用Treeset<E>具有唯一性特点
		System.out.println("并集为:"+B);
	}

}

 

运行结果

 

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

代码

1.Test.java

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Test {
    public static void main(String[] args) {
        System.out.println("请输入一个字符串");
        Scanner reader = new Scanner(System.in);
        String str = reader.nextLine();
        HashMap<String, String> H = new HashMap<String, String>();   //创建散列映射
        int num=0;         //存储数字个数
        int d=0;   		//存储大写字母字符
        int x=0;		//存储小写字母个数
        for(int i=0;i<str.length();i++){
            String str1 = str.substring(i, i+1);
            if(str1.matches( "\\d")){             //判断是否为数字
                if(H.get("数字")==null){
                    H.put("数字", str1);
                }else{
                    H.put("数字", H.get("数字")+","+str1);
                }
                num++;
            }
            if(str1.matches("[a-z]")){				//判断是否为小写字母
                if(H.get("小写字母")==null){
                    H.put("小写字母", str1);
                }else{
                    H.put("小写字母", H.get("小写字母")+","+str1);
                }
                x++;
            }                
            if(str1.matches("[A-Z]")){//判大写字母
                if(H.get("大写字母")==null){			//判断是否为大写字母
                    H.put("大写字母", str1);
                }else{
                    H.put("大写字母", H.get("大写字母")+","+str1);
                }
                d++;
            }
        }
        Set set = H.entrySet();        //返回映射中项的集合 
        Iterator it = set.iterator();   //用迭代器获取
        while(it.hasNext()){
            Map.Entry 	M = (Map.Entry)it.next();
            System.out.print(M.getKey());
            if(M.getKey().equals("数字")){
                System.out.print("——共"+num+"个,");
            }else if(M.getKey().equals("小写字母")){
                System.out.print("——共"+x+"个,");
            }else if(M.getKey().equals("大写字母")){
                System.out.print("——共"+d+"个,");
            }
            System.out.println("分别是:"+M.getValue());    
        }
    }
}

运行结果

 

 

 

 

posted @ 2019-11-30 20:03  徐伟刚  阅读(172)  评论(0编辑  收藏  举报