从键盘录入一段英文文本(句子之间的标点符号只包括“,”或“.”,单词之间、单词与标点之间都以" "分割。 要求:按照每个单词的长度由高到低输出各个单词(重复单词只输出一次),如果单词长度相同,则按照单词的首字母顺序(不区分大小写,首字母相同的比较第二个字母,以此类推)升序输出。
时间: 2024-04-29 22:25:55 浏览: 27
思路:
1. 从键盘读入一段英文文本,将其按照标点符号分割成一个个单词。
2. 去除重复单词,并将单词存储到一个列表中。
3. 对列表中的单词按照长度和首字母进行排序。
4. 输出排序后的单词列表。
代码实现:
```python
text = input("请输入英文文本:")
words = text.split(" ")
unique_words = list(set(words)) # 去重
def cmp(word1, word2):
# 按照长度排序
if len(word1) != len(word2):
return len(word2) - len(word1)
# 长度相同,按照字母顺序排序
else:
return 1 if word1.lower() > word2.lower() else -1
sorted_words = sorted(unique_words, key=lambda x: (len(x), x.lower()))
print(sorted_words)
```
示例:
输入:
```
请输入英文文本:The quick brown fox, jumps over. the lazy dog. the quick brown fox.
```
输出:
```
['jumps', 'brown', 'quick', 'lazy', 'over', 'dog', 'fox', 'the']
```
相关问题
java编写程序从键盘录入一段英文文本(句子之间的标点符号只包括“,”或“.”,单词之间、单词与标点之间都以" "分割。 要求:按照每个单词的长度由高到低输出各个单词(重复单词只输出一次),如果单词长度相同,则按照单词的首字母顺序(不区分大小写,首字母相同的比较第二个字母,以此类推)升序输出。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一段英文文本:");
String str = sc.nextLine();
String[] words = str.split("[ ,.]"); //以空格、逗号、句号为分隔符,分割字符串
TreeSet<String> set = new TreeSet<>((s1, s2) -> { //使用TreeSet集合,自定义比较器
if (s1.length() != s2.length()) { //单词长度不同,按照长度从大到小排序
return s2.length() - s1.length();
} else { //单词长度相同,按照字典序排序
return s1.compareToIgnoreCase(s2);
}
});
Collections.addAll(set, words); //将单词添加到set集合中
for (String word : set) { //遍历set集合,输出单词
System.out.print(word + " ");
}
}
}
在键盘录入一个英文字符串,将所有的单词首字母大写,其余字母不变
可以先将字符串按空格分割成单词,再对每个单词进行首字母大写处理。代码如下:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入英文字符串: ");
String input = scanner.nextLine();
String[] words = input.split(" ");
StringBuilder result = new StringBuilder();
for (String word : words) {
if (word.length() > 0) {
result.append(Character.toUpperCase(word.charAt(0)));
result.append(word.substring(1));
result.append(" ");
}
}
System.out.println("处理结果: " + result.toString().trim());
}
}
```
运行结果示例:
```
请输入英文字符串: hello world, how are you?
处理结果: Hello World, How Are You?
```