Я пытаюсь использовать тот же формат этого кода, который я использовал в учебнике. Он напечатает самое длинное слово, а также длину самого длинного слова. Преподаватель сказал мне, что, чтобы найти самое короткое слово, мне нужно перевернуть оператор if, чтобы он был меньше ('<'), а не больше ... однако, после ввода любой строки, когда я запускаю программу, она возвращает: </p>
"Кратчайшее слово:" ", длина: 0"
Я не уверен, как это исправить, чтобы он искал реальное слово, а не пустой символ .. Я хотел бы следуйте той же логике c здесь без использования массивов.
Scanner in = new Scanner(System.in);
System.out.println("Please enter a phrase: ");
String phrase = in.nextLine();
String w = "";
String lw = "";
int l;
char ch;
phrase = phrase + " ";
l = phrase.length();
int i;
for (i=0; i < l; i++) {
ch = phrase.charAt(i);
if(ch != ' ') {
w = w + ch;
} else {
if(w.length() > lw.length()) {
lw = w;
}
w = "";
}
}
System.out.println("Longest Word: \"" + lw + "\", length: "+ lw.length());