第十三次作业

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

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

 

/*创建2个ArrayList对象分别存入字符串,a3,a4两个ArrayList对象用于备份,使用retainAll方法删除a1中除了包含在a2中的元素之外的全部元素,此为交集。将a3中与a4相同的元素删除,再将a4的元素加入到a3,此为并集*/
package My;
import java.util.ArrayList;
public class Test11_26 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ArrayList<String> a1 = new ArrayList<String>();
        a1.add("chen");
        a1.add("wang");
        a1.add("liu");
        a1.add("zhang");
        ArrayList<String> a2 = new ArrayList<String>();
        a2.add("chen");
        a2.add("hu");
        a2.add("zhang");
        ArrayList<String> a3 = new ArrayList<String>(a1);
        ArrayList<String> a4 = new ArrayList<String>(a2);
        a1.retainAll(a2);                
        System.out.println("交集为:"+a1);
        a3.removeAll(a4);            
        a3.addAll(a4);                
        System.out.println("并集为:"+a3);
    }

}

/*创建一个字符串对象,将字符串转为数组存在b1中,3个计数器变量记录字符个数,创建3个ArrayList对象分别存储不同的字符,   for循环遍历数组,使用Character中的方法分别判断数字字符、小写字母字符、大写字母字符*/
package My;
import java.util.*;
public class Test11_26_2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请输入一个字符串");
        Scanner reader = new Scanner(System.in);
        String a1 = new String(reader.next());
        char b1[] = a1.toCharArray();
        System.out.println("输入内容为"+a1);
        int digit = 0;
        int lower = 0;
        int upper = 0;
        ArrayList s1 = new ArrayList();
        ArrayList s2 = new ArrayList();
        ArrayList s3 = new ArrayList();    
        for(int i=0;i<b1.length;i++) {
            if(Character.isDigit(b1[i])) {                //判断是否是数字字符
                digit++;
                s1.add(b1[i]);
            }else if(Character.isLowerCase(b1[i])) {    //判读是否是小写字母
                lower++;
                s2.add(b1[i]);
            }else if(Character.isUpperCase(b1[i])) {    //判断是否是大写字母
                upper++;
                s3.add(b1[i]);
            }
            }
        System.out.println("包含数字:"+digit+"个,分别为:"+s1);
        System.out.println("包含小写字母:"+lower+"个,分别为:"+s2);
        System.out.println("包含大写字母:"+upper+"个,分别为:"+s3);
        }
    }

posted @ 2019-11-30 09:38  20194695徐少华  阅读(226)  评论(0编辑  收藏  举报