第13周作业集

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

代码

Test.java

/**
 * 创建一个测试类,声明四个ArrayList对象,存入元素,用方法求出交并集,输出结果
 */
package a;
import java.util.*;
public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ArrayList<String> a1= new ArrayList<String>();
        ArrayList<String> a2= new ArrayList<String>();
        a1.add ("chen");
        a1.add ("wang");
        a1.add ("liu");
        a1.add ("zhang");
        a2.add("chen");
        a2.add("Hu");
        a2.add("zhang");
        ArrayList<String> a3 = new ArrayList<String>();
        a3.addAll(a1);
        a3.retainAll(a2);//将a3中与a2中不相同的元素全部剔除;
        System.out.println("交集是:"+a3.toString());
        HashSet<String> a4 = new HashSet<String>();
        a4.addAll(a1);
        a4.addAll(a2);//利用Set<E>唯一性的特点去除重复的元素取得并集;
        System.out.println("并集是:"+a4.toString());    
    }

}

运算结果

 

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

代码

Test.java


/**
* 创建一个测试类,声明三个列表对象,判断是否为数字,大写字母或小写字母,并计算出个数,输出结果 */ package q; 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) { Scanner reader = new Scanner(System.in); HashMap m = new HashMap(); System.out.println("输入一个字符串:"); String s = reader.nextLine(); int number= 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') { number++; // 计算数字个数 a.append(ch+","); //将获得的字符ch放到a的后面,再加一个逗号分隔 m.put("数字:", a); //加入到HashMap中 } else if (ch >= 'A' && ch <= 'Z') { capital++; // 计算大写字母个数 b.append(ch+","); //将字符ch放到b的后面,再加一个逗号分隔 m.put("大写字母:", b); } else if (ch >= 'a' && ch <= 'z') { lowercase++; // 计算小写字母个数 c.append(ch+","); //同上 m.put("小写字母:", c); } } Set set = m.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("共" + number + "个,"); } else if (me.getKey().equals("大写字母:")) { System.out.println("共" + capital + "个"); } else if (me.getKey().equals("小写字母:")) { System.out.println("共" + lowercase + "个"); } System.out.println("分别为:"+me.getValue()); //输出最终获得的内容 } }}

运算结果

 

 

 

posted @ 2019-12-01 09:42  王庆祥  阅读(127)  评论(0编辑  收藏  举报