编写一个程序,分析用户输入的句子中单词的个数
时间: 2024-10-22 22:18:27 浏览: 12
要编写一个程序来分析用户输入的句子中的单词数量,你可以使用Python的内置模块`split()`,该模块可以根据空格分隔字符串并返回单词列表。以下是一个简单的示例:
```python
def count_words(sentence):
# 删除可能存在的标点符号(这里只考虑了英文标点)
sentence = sentence.replace(',', '').replace('.', '').replace('!', '').replace('?', '')
# 使用split()函数按空格分割句子,得到单词列表
words = sentence.split()
# 返回单词的数量
return len(words)
# 获取用户输入
sentence_from_user = input("请输入一句话:")
# 分析单词数
word_count = count_words(sentence_from_user)
print(f"句子 '{sentence_from_user}' 中有 {word_count} 个单词。")
# 相关问题
相关问题
16. 编写一个Java程序,输入一个字符串,查找其中第一个不重复的字符并输出它的下标。 17. 编写一个Java程序,输入两个字符串并比较它们的字典序。 18. 编写一个Java程序,输入一个字符串,用给定的字符替换其中所有的指定字符。 19. 编写一个Java程序,输入一个字符串,计算其中的所有单词的个数。 20. 编写一个Java程序,输入一个字符串,把其中的所有单词按照字典序排序并输出结果。
好的,我会为您解答这些问题。
16. Java程序如下:
```java
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;
public class FindFirstNonRepeatedCharacter {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.nextLine();
Map<Character, Integer> map = new LinkedHashMap<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
map.put(c, map.getOrDefault(c, 0) + 1);
}
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
if (entry.getValue() == 1) {
System.out.println("第一个不重复的字符为:" + entry.getKey() + ",下标为:" + str.indexOf(entry.getKey()));
return;
}
}
System.out.println("字符串中没有不重复的字符。");
}
}
```
17. Java程序如下:
```java
import java.util.Scanner;
public class CompareStringsLexicographically {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个字符串:");
String str1 = sc.nextLine();
System.out.println("请输入第二个字符串:");
String str2 = sc.nextLine();
int result = str1.compareTo(str2);
if (result > 0) {
System.out.println(str1 + " 按字典序排列在 " + str2 + " 后面。");
} else if (result < 0) {
System.out.println(str1 + " 按字典序排列在 " + str2 + " 前面。");
} else {
System.out.println(str1 + " 和 " + str2 + " 相等。");
}
}
}
```
18. Java程序如下:
```java
import java.util.Scanner;
public class ReplaceCharactersInString {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.nextLine();
System.out.println("请输入要替换的字符:");
char targetChar = sc.nextLine().charAt(0);
System.out.println("请输入替换成的字符:");
char replaceChar = sc.nextLine().charAt(0);
String result = str.replace(targetChar, replaceChar);
System.out.println("替换后的字符串为:" + result);
}
}
```
19. Java程序如下:
```java
import java.util.Scanner;
public class CountWordsInString {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.nextLine().trim();
int count = 0;
if (str.length() > 0) {
count++;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ' && i + 1 < str.length() && str.charAt(i + 1) != ' ') {
count++;
}
}
}
System.out.println("单词个数为:" + count);
}
}
```
20. Java程序如下:
```java
import java.util.Arrays;
import java.util.Scanner;
public class SortWordsInString {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.nextLine();
String[] words = str.split("\\W+");
Arrays.sort(words);
System.out.println("按字典序排序后的单词为:");
for (String word : words) {
System.out.print(word + " ");
}
}
}
```
Java代码:编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。 说明:(1)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;(2)不用考虑单词的大小写,假设输入的都是小写字符;(3)句子长度不超过100个字符。 输入格式:输入只有一行,即一个英文句子。 输出格式:输出只有一行,是一个整数,表示句子中不同单词的个数。
Java代码如下:
```java
import java.util.HashSet;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String sentence = scanner.nextLine();
String[] words = sentence.split(" ");
HashSet<String> set = new HashSet<>();
for (String word : words) {
set.add(word);
}
System.out.println(set.size());
}
}
```
解释如下:
1. 首先导入 `HashSet` 类,该类是 Java 中的一种集合,可以用于存储不重复的元素。
2. 创建一个 `Scanner` 对象,用于从控制台读取输入的句子。
3. 使用 `nextLine()` 方法读取一行字符串,并将其赋值给 `sentence` 变量。
4. 使用 `split()` 方法将 `sentence` 字符串按照空格分割成一个字符串数组 `words`。
5. 创建一个 `HashSet` 对象 `set`,用于存储不同的单词。
6. 使用 `for` 循环遍历 `words` 数组,将每个单词添加到 `set` 集合中,由于 `HashSet` 集合不允许重复元素,所以最终只会包含不同的单词。
7. 使用 `set.size()` 方法获取 `set` 集合中不同单词的个数,并输出到控制台。
阅读全文