)从键盘上输入一行数据,利用集合类统计不同的单词数。
时间: 2024-03-01 08:54:40 浏览: 37
好的,可以使用Java语言来实现这个功能。代码如下:
```java
import java.util.*;
public class WordCount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一行数据:");
String line = scanner.nextLine();
Set<String> set = new HashSet<>();
String[] words = line.split("[^a-zA-Z]+");
for (String word : words) {
set.add(word.toLowerCase());
}
System.out.println("不同的单词数为:" + set.size());
}
}
```
输入一行数据后,程序会将这行数据按照非字母字符进行分割,然后将分割得到的所有单词转换为小写字母,并加入到一个HashSet中。由于HashSet不会存储重复元素,因此最后输出HashSet的大小即可得到不同的单词数。
相关问题
用Java实现从键盘上面读入一行数据,利用集合类来统计不同的单词数。
好的,您可以参考下面的代码实现:
```java
import java.util.*;
public class WordCount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
scanner.close();
String[] words = input.split("\\W+"); // 以非字母字符为分隔符分割单词
Map<String, Integer> wordCountMap = new HashMap<>();
for (String word : words) {
if (wordCountMap.containsKey(word)) {
wordCountMap.put(word, wordCountMap.get(word) + 1);
} else {
wordCountMap.put(word, 1);
}
}
System.out.println("不同的单词数为:" + wordCountMap.size());
}
}
```
代码解释:
1. 首先使用 `Scanner` 类从键盘上读取一行数据,保存到 `input` 变量中。
2. 使用 `String` 类的 `split()` 方法以非字母字符作为分隔符分割单词,并将结果保存到 `words` 数组中。
3. 遍历 `words` 数组,使用 `Map` 类保存每个单词出现的次数。如果单词已经在 `Map` 中存在,则将其出现次数加一;如果不存在,则将其出现次数初始化为一。
4. 最后输出 `Map` 的大小,即不同的单词数。
需要注意的是,上面的代码只是一个简单的示例,没有考虑一些特殊情况,比如单词中包含数字或者特殊字符等。如果需要更加完善的实现,还需要进行一些额外的处理。
由键盘输入20个整数,统计不同数字的个数
### 回答1:
可以使用一个数组来记录每个数字出现的次数,最后统计不同数字的个数即可。具体步骤如下:
1. 定义一个长度为100的数组count,用于记录每个数字出现的次数,初始值都为。
2. 通过循环输入20个整数,每输入一个数就在count数组中对应的位置加1。
3. 遍历count数组,统计值不为的元素个数,即为不同数字的个数。
示例代码如下:
```python
count = [] * 100 # 定义一个长度为100的数组count,初始值都为
for i in range(20):
num = int(input("请输入第{}个整数:".format(i+1)))
count[num] += 1 # 在count数组中对应的位置加1
diff_num = # 不同数字的个数
for i in range(100):
if count[i] != :
diff_num += 1
print("不同数字的个数为:", diff_num)
```
注意:上述代码中假设输入的整数都在~99之间,如果输入的整数可能超出这个范围,需要根据实际情况调整数组长度。
### 回答2:
要统计20个整数中不同数字的个数,可以使用一个集合来存储出现的不同数字。
具体的步骤如下:
1. 定义一个空的集合,用于存储不同数字。
2. 通过循环输入20个整数。
3. 对于每个输入的整数,判断它是否已经存在于集合中。
- 如果已经存在,则不进行任何操作。
- 如果不存在,则将该整数加入集合中。
4. 循环结束后,集合中的元素个数即为不同数字的个数。
5. 输出不同数字的个数。
下面是一段示例代码实现上述步骤:
```python
num_set = set() # 定义一个空的集合
# 循环输入20个整数
for i in range(20):
num = int(input("请输入第{}个整数: ".format(i+1)))
# 判断数字是否已经存在于集合中
if num not in num_set:
num_set.add(num) # 将不同的数字加入集合中
# 输出不同数字的个数
print("不同数字的个数为: ", len(num_set))
```
以上代码可以统计用户输入的20个整数中不同数字的个数。注意,这里假设用户输入的都是整数,如果用户输入的是其他类型的数据,需要进行适当的错误处理。
### 回答3:
我们可以使用数组或集合来解决这个问题。假设我们使用数组。
首先,我们可以定义一个长度为20的整数数组来存储输入的20个整数。
然后,我们通过循环从键盘输入这20个整数,并将它们存储到数组中。
接下来,我们可以定义一个长度为20的布尔型数组,用于标记数组中的不同数字。初始时,所有元素都设为true。
然后,我们再次通过循环遍历整数数组。对于每个整数,我们可以通过判断它是否已经在数组中出现过来进行标记。如果是第一次出现,我们将对应的布尔型数组元素设为false。
最后,我们使用一个计数变量来统计布尔型数组中值为true的个数。这个变量的值就是不同数字的个数。
最后,输出结果即可。
请注意,这里我们假设输入的整数范围在1到100之间。如果输入的整数范围超过这个范围,我们可能需要使用更大的数组来存储更多的数字,或者使用其他数据结构来实现。