第13周作业集

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

package ccut.ch.thirteen.j;
import java.util.*;
public class Test1 {
	public static void main(String[] args) {
		ArrayList<String> a1= new ArrayList<String>();
		a1.add("chen");
		a1.add("wang");
		a1.add("liu");
		a1.add("zhang");			//向线性表a1中增加字符串
		ArrayList<String> a2= new ArrayList<String>();
		a2.add("chen");
		a2.add("hu");		
		a2.add("zhang");			//向线性表a2中增加字符串
		ArrayList<String> b= new ArrayList<String>();
		ArrayList<String> j= new ArrayList<String>();
		b.addAll(a1);			//将a1中的所有元素加入到b中
		for(int i=0;i<3;i++)
		{
			if(b.contains(a2.get(i)))   //判断b中是否包含a2的元素
			j.add(a2.get(i));			//将相同的元素放到j中
		}
		System.out.println("交集:"+j);
		for(int i=0;i<3;i++)
		{
			if(b.contains(a2.get(i)))	 //判断b中是否包含a2的元素
				continue;				//包含就进行下一次循环
			else
			b.add(a2.get(i));			//不包含将元素加入到b中
		}
		System.out.println("并集:"+b);
	}
}

运行结果

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

package ccut.ch.thirteen.j;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Test2 {
	public static void main(String[] args) {
		System.out.println("输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成:");
		Scanner r = new Scanner(System.in);
		String s = r.nextLine();         //将用户输入的内容赋给字符串s
		char[] ch = s.toCharArray();     //定义一个字符数组存入数据
		int temp1 = 0, temp2 = 0, temp3 = 0;   //定义计数器
		HashMap<Integer, Character> hm1 = new HashMap<Integer, Character>();   //创建HashMap类对象hm1
		for (int i = 0; i < ch.length; i++)
			if (ch[i] >= 'A' && ch[i] <= 'Z') {
				temp1++;
				hm1.put(temp1, ch[i]);
			}									//遍历字符数组,找数组中的数字,计数并往hm1里存数字
		System.out.print("大写字母----共" + temp1 + "个," + "分别为" + " ");
		Set set1 = hm1.entrySet();				//返回包含映射中项的集合
		Iterator b2 = set1.iterator();			//迭代器遍历
		while (b2.hasNext()) {					//显示元素
			Map.Entry me1 = (Map.Entry) b2.next(); //Map.Entry可以操作映射的输入
			System.out.print(me1.getValue());
		}
		System.out.println();
		HashMap<Integer, Character> hm2 = new HashMap<Integer, Character>();//创建HashMap类对象hm2
		for (int i = 0; i < ch.length; i++)
			if (ch[i] >= 'a' && ch[i] <= 'z') {
				temp2++;
				hm2.put(temp2, ch[i]);
			}									//遍历字符数组,找数组中的小写字母,计数并往hm2里存小写字母
		System.out.print("小写字母----共" + temp2 + "个," + "分别为" + " ");
		Set set2 = hm2.entrySet();				//返回包含映射中项的集合
		Iterator b3 = set2.iterator();			//迭代器遍历
		while (b3.hasNext()) {					//显示元素
			Map.Entry me2 = (Map.Entry) b3.next();//Map.Entry可以操作映射的输入
			System.out.print(me2.getValue());
		}
		System.out.println();
		HashMap<Integer, Character> hm3 = new HashMap<Integer, Character>();//创建HashMap类对象hm3
		for (int i = 0; i < ch.length; i++)
			if (ch[i] >= '0' && ch[i] <= '9') {
				temp3++;
				hm3.put(temp3, ch[i]);
			}									//遍历字符数组,找数组中的大写字母,计数并往hm3里存大写字母
		System.out.print("数字----共" + temp3 + "个," + "分别为" + " ");
		Set set = hm3.entrySet();				//返回包含映射中项的集合
		Iterator b1 = set.iterator();			//迭代器遍历
		while (b1.hasNext()) {					//显示元素
			Map.Entry me = (Map.Entry) b1.next();//Map.Entry可以操作映射的输入
			System.out.print(me.getValue());
		}
	}
}

运行结果

原文地址:https://www.cnblogs.com/ctt886/p/11962733.html