第13周作业集

一、题目

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

二、源代码

Test.java

package Twentytwoth;

import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
/*
 * 创建两个不同的List集合,用来存放不同的字符串
 * 创建一个新的List集合通过contains方法对上面的两个不同字符串进行比较,这样就是交集
 * 并集就是将这两个不同的List加到一个List里面,得到的结果就是并集
 * 
 */
public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<String> a = new LinkedList<String>();
        a.add("chen");
        a.add("wang");
        a.add("liu");
        a.add("zhang");
        List<String> b = new LinkedList<String>();
        b.add("chen");
        b.add("hu");
        b.add("zhang");
        // 交集
        List<String> c = new LinkedList<String>();
        Iterator<String> it = a.iterator();
        while (it.hasNext()) {
            String s = it.next();
            if (b.contains(s)) {
                c.add(s);
            }
        }
        System.out.println("交集:" + c);
        // 并集
        Set<String> d = new HashSet<String>();
        d.addAll(a);
        d.addAll(b);
        System.out.println("并集:" + d);
    }

}

三、运行结果

 

 

一、题目

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

二、源代码

Test.java

 

package Twentyfourth;
/*
 * 通过hashmap将不同的Value值放到不同的Key里,然后 remove去除多余字符串,进行比较并输出结果
 * 
 * 
 * 
 */
import java.util.HashMap;
import java.util.Scanner;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String back = sc.nextLine();
        HashMap<String, Character> hm = new HashMap<String, Character>();
        int bigLetter = 0, smallLetter = 0, number = 0;
        int bigLetter1 = 0, smallLetter1 = 0, number1 = 0;
        String g = "";
        char[] s = back.toCharArray();
        char[] d = new char[back.length()];
        char[] a = new char[back.length()];
        char[] b = new char[back.length()];
        char[] c = new char[back.length()];
        StringBuffer aa = new StringBuffer();
        StringBuffer bb = new StringBuffer();
        StringBuffer cc = new StringBuffer();

        for (int i = 0; i < back.length(); i++) {
            if (s[i] >= 'A' && s[i] <= 'Z') {
                hm.put("大写字母", s[i]);
                bigLetter++;
            } else if (s[i] >= 'a' && s[i] <= 'z') {
                hm.put("小写字母", s[i]);
                smallLetter++;
            } else if (s[i] >= '0' && s[i] <= '9') {
                hm.put("数字", s[i]);
                number++;
            }
        }
        g = Test.remove(back);
        d = g.toCharArray();
        for (int i = 0; i < g.length(); i++) {
            if (d[i] >= 'A' && d[i] <= 'Z') {
                a[i] = d[i];
                aa.append(a[i]);
                bigLetter1++;
            } else if (d[i] >= 'a' && d[i] <= 'z') {
                b[i] = d[i];
                bb.append(b[i]);
                smallLetter1++;
            } else if (d[i] >= '0' && d[i] <= '9') {
                c[i] = d[i];
                cc.append(c[i]);
                number1++;
            }
        }
        /*
         * String s1=String.valueOf(a); String s2=String.valueOf(b); String
         * s3=String.valueOf(c);
         */
        System.out.println("大写字母有" + bigLetter1 + "个,分别是" + aa + "总共有"
                + bigLetter + "个字符");
        System.out.println("小写字母有" + smallLetter1 + "个,分别是" + bb + "总共有"
                + smallLetter + "个字符");
        System.out.println("数字有" + number1 + "个,分别是" + cc + "总共有" + number
                + "个字符");

        // System.out.println(g);//输出有的字符串

    }

    public static String remove(String str) { // 去除数组里面重复的字符
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            char every = str.charAt(i);
            int first = str.indexOf(every);
            int last = str.lastIndexOf(every);
            if (last == first || first == i) {
                sb.append(every);
            }
        }
        return sb.toString();
    }

}

三、运行结果

posted @ 2019-11-28 21:14  薄暮JIM  阅读(127)  评论(0编辑  收藏  举报