从键盘输入一行字符,统计其中有多少单词。假设单词之间以空格分开。判断是否有新单词出现的方法:当前被检验字符不是空格,而前一被检验字符是空格,则表示有新单词出现。java
时间: 2024-03-23 16:41:49 浏览: 77
好的,以下是 Java 代码实现:
```java
import java.util.Scanner;
public class WordCount {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine().trim(); // 获取输入并去除首尾空格
int wordCount = 0;
boolean isNewWord = true;
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (c == ' ') {
isNewWord = true;
} else if (isNewWord) {
wordCount++;
isNewWord = false;
}
}
System.out.println("单词数量为:" + wordCount);
}
}
```
代码解析:
1. 使用 `Scanner` 类获取用户输入的一行字符,并使用 `trim()` 方法去除首尾空格。
2. 定义一个 `wordCount` 变量来记录单词数量,初始化为 0,以及一个 `isNewWord` 变量来判断是否有新单词出现,初始化为 `true`。
3. 使用 `for` 循环遍历输入的字符串。
4. 对于每个字符,如果是空格,则将 `isNewWord` 设为 `true`,表示下一个非空格字符为新单词的开头。
5. 如果不是空格且前一个字符是空格(即 `isNewWord` 为 `true`),则单词数量加一,并将 `isNewWord` 设为 `false`。
6. 循环结束后,输出单词数量。
注意事项:
1. 代码中使用 `charAt()` 方法来获取字符串中指定位置的字符。
2. `trim()` 方法可以去除字符串首尾的空格。
3. 本实现方法只能统计单词数量,不能去重计算单词种类。
4. 代码假设单词之间以空格分开,如果需要支持其他分隔符,可以在空格判断的地方进行修改。
阅读全文