第13周作业集

## 题目

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

## 源代码

  #

import java.util.ArrayList;

/**
 * 求两线性表的交集及并集
 * @author 喵
 * @date 2019年12月1日下午1:10:59
 */
public class LIstDemo {
    public static void main(String[] args) {
        String str1 = "chen";
        String str2 = "wang";
        String str3 = "liu";
        String str4 = "zhang";
        String str5 = "hu";
        ArrayList arr1 = new ArrayList<>();
        arr1.add(str1);
        arr1.add(str2);
        arr1.add(str3);
        arr1.add(str4);
        ArrayList arr2 = new ArrayList<>();
        arr2.add(str1);
        arr2.add(str5);
        arr2.add(str4);
        
        ArrayList arr3 = new ArrayList<>(arr1);
        
        arr3.retainAll(arr2);
        System.out.println("两者的交集为:" + arr3);
        arr2.removeAll(arr3);
        arr1.addAll(arr2);
        System.out.println("两则的并集:" + arr1);    
    }
}

  #运行结果

 

## 题目二

编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,

统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;

大写字母——共2个,分别为A,W。

## 源代码

  #

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

/**
 * 求个数
 * @author 喵
 * @date 2019年12月1日下午1:42:24
 */
public class CurrentNum {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("输入的内容必须只能包含数字、小写字母、大写字母:");
        String str1 = input.nextLine();
        /** 将字符串转换到数组中*/
        List ListStr1 = new ArrayList<>();
        ListStr1.addAll(Arrays.asList(str1.split("")));        //三次转换
        
        Map result = new HashMap<>();
        int upNum = 0, downNum = 0, nNum = 0;
        StringBuffer s1 = new StringBuffer();
        StringBuffer s2 = new StringBuffer();
        StringBuffer s3 = new StringBuffer();

        result.put("大写字母", upNum);
        result.put("小写字母", downNum);
        result.put("数字", nNum);
        
        for (int i = 0; i < ListStr1.size(); i++) {
            String ch = ListStr1.get(i);
            if (ch.charAt(0) >= 'A' && ch.charAt(0) <= 'Z') {
                upNum = result.get("大写字母").intValue();
                s1.insert(upNum, ch);
                result.put("大写字母", ++upNum);
            }
            if (ch.charAt(0) >= 'a' && ch.charAt(0) <= 'z') {
                upNum = result.get("小写字母").intValue();
                s2.insert(downNum, ch);
                result.put("小写字母", ++downNum);
            }
            if (ch.charAt(0) >= '0' && ch.charAt(0) <= '9') {
                upNum = result.get("数字").intValue();
                s3.insert(nNum, ch);
                result.put("数字", ++nNum);
            }
        }
        
        System.out.println("大写字母个数:" + result.get("大写字母") + "个, 分别是:" + s1);
        System.out.println("小写字母个数:" + result.get("小写字母") + "个, 分别是:" + s2);
        System.out.println("数字个数:" + result.get("数字") + "个, 分别是:" + s3);    
    }
}

  # 测试结果

第13周作业集_第1张图片

你可能感兴趣的:(第13周作业集)