一、题目链接
http://noi.openjudge.cn/ch0107/25/
二、解题思路
三、实施步骤
四、Java程序
import java.util.Scanner;
public class Main {
/**
* 返回给定句子中第一个最长的单词
*
* @param text String类型的对象,代表给定字符串
* @return String类型的对象,代表text中第一个最长的单词
*/
public String longestWord(String text) {
String str = text.replace(',', ' '); // 将text中的逗号替换为空格,替换后的新字符串为str
String[] words = str.split(" "); // 通过一个空格将str分割为单词集合
int max_pos = 0; // str中第一个最长单词的位置,初始时为0
/* 从第二个单词开始,到最后一个单词位置 */
for (int i = 1; i < words.length; i++) {
if (words[i].length() > words[max_pos].length()) { // 如果当前单词的长度大于最长单词的长度
max_pos = i; // 将max_pos更新为当前单词的位置
}
}
return words[max_pos]; // 返回str中第一个最长的单词
}
/**
* 返回给定句子中第一个最短的单词
*
* @param text String类型的对象,代表给定字符串
* @return String类型的对象,代表text中第一个最短的单词
*/
public String shortestWord(String text) {
String str = text.replace(',', ' '); // 将text中的逗号替换为空格,替换后的新字符串为str
String[] words = str.split(" "); // 通过一个空格将str分割为单词集合
int min_pos = 0; // str中第一个最短单词的位置,初始时为0
/* 从第二个单词开始,到最后一个单词位置 */
for (int i = 1; i < words.length; i++) {
// 如果当前单词是有效单词且长度小于最短单词的长度
if (!words[i].isEmpty() && words[i].length() < words[min_pos].length()) {
min_pos = i; // 将min_pos更新为当前单词的位置
}
}
return words[min_pos]; // 返回str中第一个最短的单词
}
/**
* 输出给定句子中第一个最长单词和第一个最短单词
*
* @param text String类型的对象,代表给定句子
*/
public void printAnswer(String text) {
System.out.println(longestWord(text));
System.out.print(shortestWord(text));
}
public static void main(String[] args) {
Main test = new Main();
Scanner input = new Scanner(System.in);
String text = input.nextLine();
test.printAnswer(text);
}
}