第13周作业集

题目1:

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

代码:

//创建ArrayList对象,add()方法添加数据,retainAll()方法
//创建HashSet对象,调用方法去重
package ccut;
import java.util.ArrayList;
import java.util.HashSet;
public class JiHe {
    public static void main(String[] args) {
        ArrayList<String> s1=new ArrayList<String>();
        ArrayList<String> s2=new ArrayList<String>();
        s1.add("chen");
        s1.add("wang");
        s1.add("liu");
        s1.add("zhang");
        s2.add("chen");
        s2.add("hu");
        s2.add("zhang");
        
        ArrayList<String> JiaoJi=new ArrayList<String>();
        JiaoJi.addAll(s1);//将s1中所有元素放入JiaoJi中
        JiaoJi.retainAll(s2);//删除除JiaoJi,s2相同元素以外元素
        System.out.println("交集为:"+JiaoJi);
        
        ArrayList<String> BingJi=new ArrayList<String>();
        BingJi.addAll(s1);//将s1中所有元素放入BingJi中
        BingJi.addAll(s2);//将s2中所有元素放入BingJi中
        HashSet<String> hs=new HashSet<String>();
        hs.addAll(BingJi);//将BingJi中所有元素放入hs中,利用HashSet特性去重
        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 ccut;

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

public class Mappp {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        System.out.println("请输入一个含有大小写字母和数字的字符串:");
        String str=reader.next();
        HashMap hm=new HashMap();//创建hm对象
        int number=0;//定义三个累加器
        int lowercase=0;
        int uppercase=0;
        StringBuffer str1=new StringBuffer();
        StringBuffer str2=new StringBuffer();
        StringBuffer str3=new StringBuffer();
        
        for(int i=0;i<str.length();i++){
            char c=str.charAt(i);//拆分成单个字符放入变量c中
            if(c>='0'&&c<='9'){
                str1.append(c+" ");//将数字放入str1中
                hm.put("数字", str1);//存入集合中
                number++;//数字累加器加1
            }else if(c>='a'&&c<='z'){
                str2.append(c+" ");
                hm.put("小写字母", str2);
                lowercase++;
            }else if(c>='A'&&c<='Z'){
                
                str3.append(c+" ");
                hm.put("大写字母", str3);
            //    System.out.println("sjfhjsnf");
                uppercase++;
            }
        }
         Set set = hm.entrySet();       // 实现set接口,里面存放键值对
         Iterator it = set.iterator();  // 获取
         while(it.hasNext()){
             Map.Entry mape =(Map.Entry)it.next(); //输入
             System.out.println(mape.getKey());//利用键值输出对应值
             if(mape.getKey().equals("数字")){
                 System.out.println("一共有"+number+"个");
             }else if(mape.getKey().equals("小写字母")){
                 System.out.print("一共有"+lowercase+"个");
             }else if(mape.getKey().equals("大写字母")){
                 System.out.println("一共有"+uppercase+"个");
             }
             System.out.println("分别为:"+mape.getValue());
         }
    }

}

 

运行测试结果:

 

posted @ 2019-11-28 14:53  李李李同學  阅读(162)  评论(0编辑  收藏  举报