一、从键盘输入一个句子,输出这个句子的单词种类个数,以#
结束
输入样例:
you are my friend
#
输出样例:
4
程序代码(Set集合去重):
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class NumOfWords {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
String sentence= sc.nextLine().trim().toLowerCase();
if(sentence.equals("#")) break;
Set<String> set = new HashSet<String>();
String[] s = sentence.split(" +");
for(int i=0;i<s.length;i++) set.add(s[i]);
System.out.println(set.size());
}
}
}
二、给定两个集合A和B,求A∪B。
注意:同一个集合中不会出现两个相同的元素。
输入:
每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数。后两行分别表示集合A和集合B,每个元素为不超出int范围的整数,每个元素之间有一个空格隔开。
输出:
针对每组数据输出一行数据,表示合并后的集合。要求从小到大输出,每个元素之间有一个空格隔开。
输入样例:
1 2
1
2 3
1 2
1
1 2
输出样例:
1 2 3
1 2
程序代码(TreeSet去重排序):
import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;
public class CollectionMerge {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int a_num = sc.nextInt();
int b_num = sc.nextInt();
TreeSet<Integer> ts = new TreeSet<Integer>();
for(int i=1;i<=a_num;i++) ts.add(sc.nextInt());
for(int i=1;i<=b_num;i++) ts.add(sc.nextInt());
//输出方式一
String result = ts.toString().replace(",", "");
System.out.println(result.substring(1,result.length()-1));
//输出方式二
Iterator<Integer> it = ts.iterator();
while(it.hasNext()) System.out.print(it.next()+" ");
System.out.println();
//输出方式三
for(Integer i : ts) System.out.print(i+" ");
System.out.println();
}
}
}