问题:
思路:
看似普通的问题,思路也简单,其实全是坑!
一般思路就是 :接收字符串->存入set数组->输出set的值
注意几个坑:
- 1.输入的一行中两个单词直接有连续空格
- 2.一行开头就输入了空格
- 3.一行全是空格
代码:(需要注意的地方代码中标注了)
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class B {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
String str = sc.nextLine();
if (str.equals("#")) {
break;
}
String[] s = str.split(" +");//带个'+' 代表一个或多个空格 用来面对有连续空格的情况
Set<String> set = new HashSet<>(Arrays.asList(s));
//如果全是空格 set返回-1
if (set.isEmpty()) {
System.out.println("0");
continue;
}
//面对开头就有空格的情况
if (str.charAt(0) == ' ') {
System.out.println(set.size() - 1);
} else {
System.out.println(set.size());
}
}
}
}