一、题目
创建两个线性表,分别存储{“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(); } }