第13周作业集

题目1:

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

代码

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


public class test {

    /**
     * @param args
     */
    public static void main(String[] args) {
            ArrayList<String> s1=new ArrayList<String>();            
            ArrayList<String> s3=new ArrayList<String>(); 
            ArrayList<String> s4=new ArrayList<String>(); 
            s1.add("chen");
            s1.add("wang");
            s1.add("liu");
            s1.add("zhang");
            ArrayList<String> s2=new ArrayList<String>(); 
            s2.add("chen");
            s2.add("hu");
            s2.add("zhang");            
            s3.addAll(s1);
            s3.retainAll(s2);
            s4.addAll(s1);
            s4.addAll(s2);    
            HashSet h = new HashSet();            // 利用HashSet查重
            h.addAll(s4);
            System.out.println("线性表s1:"+s1);
            System.out.println("线性表s2:"+s2);
            System.out.println("两个线性表的交集为:"+s3);
            System.out.println("两个线性表的并集为:"+h);
    }

}

结果

题目2:

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

代码

import java.util.*;


public class test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner reader=new Scanner(System.in);
        String str=reader.nextLine();
        HashMap<String,String> map = new HashMap<String, String>();
         char[] s = str.toCharArray();      
         int number = 0,xiao = 0,da = 0;
             for(int i=0;i<s.length;i++){
                 String c=Character.toString(s[i]);
                 if (Character.isDigit(s[i])) {
                     if(map.get("数字")==null){
                         map.put("数字", c);
                     }else{
                         map.put("数字", map.get("数字")+","+c);
                     }
                         number++;
                 } else if (s[i] >= 'A' && s[i] <= 'Z') {
                     if(map.get("大写字母")==null){
                         map.put("大写字母", c);
                     }else{
                         map.put("大写字母", map.get("大写字母")+","+c);
                     }
                         xiao++;
                 } else if (s[i] >= 'a' && s[i] <= 'z') {
                     if(map.get("小写字母")==null){
                         map.put("小写字母", c);
                     }else{
                         map.put("小写字母", map.get("小写字母")+","+c);
                     }
                         da++;
                 }
             }
             

         Set set = map.entrySet();       
            Iterator it = set.iterator();
            while(it.hasNext()){
                Map.Entry me = (Map.Entry)it.next();
                System.out.print(me.getKey());
                if(me.getKey().equals("数字")){
                    System.out.print("——共"+number+"个,");
                }else if(me.getKey().equals("小写字母")){
                    System.out.print("——共"+xiao+"个,");
                }else if(me.getKey().equals("大写字母")){
                    System.out.print("——共"+da+"个,");
                }
                System.out.println("分别是:"+me.getValue());   
            }
    }
    }

结果

 

posted @ 2019-11-30 17:58  When?  阅读(117)  评论(0编辑  收藏  举报