第十三周作业

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

源代码

package cn.edu.ccut.po6;
import java.util.*;
public class One {
    public static void main(String[]arge){
        ArrayList<String>a1=new ArrayList<String>();//创建ArrayList对象a1
        a1.add("chen");//加入元素到a1中
        a1.add("wang");
        a1.add("liu");
        a1.add("zhang");
        ArrayList<String>a2=new ArrayList<String>();//创建ArrayList对象a2    
        a2.add("chen");//加入元素到a2中
        a2.add("hu");
        a2.add("zhang");
        ArrayList<String>a3=new ArrayList<String>(a1);//创建ArrayList对象a3,并将集合a1赋给a3    
        a3.retainAll(a2);//调用retainAll()方法
        System.out.println("交集是:"+a3);
        ArrayList<String>a4=new ArrayList<String>();//创建ArrayList对象a4
        a4.addAll(a1);//调用addAll()方法
        a4.addAll(a2);
        System.out.println("并集是:"+a4);
HashSet <String> set=new HashSet <String>();//去重
        set.addAll(a4);
        System.out.println("去重后的并集是:"+set);
        
}
}

运行截图

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

 源代码

package cn.edu.ccut.po6;
import java.util.*;
public class Tow {
    public static void main(String[] args) {
    int UpperCase = 0;
    int LowerCase = 0;
    int Number = 0;
    Scanner reader = new Scanner(System.in);
    System.out.println("请输入字符串");
    String str= reader.nextLine();
     char [] ch=str.toCharArray();
     String regex="\\w+";
     HashMap<Integer,Character> a1=new HashMap<Integer,Character>();
     HashMap<Integer,Character> a2=new HashMap<Integer,Character>();
     HashMap<Integer,Character> a3=new HashMap<Integer,Character>();
    if(str.matches(regex)){
         for(int i=0;i<ch.length;i++) { 
            if(ch[i]>='A' && ch[i]<= 'Z') {
               UpperCase++;
            a1.put(UpperCase,ch[i]);
           }else if(ch[i] >= 'a' && ch[i] <= 'z'){
               LowerCase ++;
               a2.put(LowerCase ,ch[i]);
           }else if(ch[i] >= '0' && ch[i] <= '9') {
              Number++;
               a3.put(Number, ch[i]);
            }
          }
          System.out.print("数字共"+Number+"个,"+"分别为"+" ");
             Set set=a3.entrySet();
             Iterator b1=set.iterator();
             while(b1.hasNext()){
                 Map.Entry me=(Map.Entry)b1.next();
                 System.out.println(me.getValue());
              }
              System.out.print("大写字母共"+UpperCase+"个,"+"分别为"+" ");
              Set set1=a1.entrySet();
              Iterator b2=set1.iterator();
               while(b2.hasNext()){
                   Map.Entry me1=(Map.Entry)b2.next();
                   System.out.println(me1.getValue());
                 }
               System.out.print("小写字母共"+LowerCase+"个,"+"分别为"+" ");
                 Set set2=a2.entrySet();
                 Iterator b3=set2.iterator();
                while(b3.hasNext()){
                 Map.Entry me2=(Map.Entry)b3.next();
                 System.out.print(me2.getValue());
               }
                
            }
                else{
                 System.out.print(str+"不是一个合法的字符串 ");
            }
            }

            }
     

运行截图

1、字符串符合要求

2、非法字符串

 

posted @ 2019-11-29 18:26  长安别故里  阅读(125)  评论(0编辑  收藏  举报