Можно использовать split()
, чтобы разбить строку на строковый массив, а затем циклически перебирать каждый элемент, чтобы проверить длину слова. В этом примере мы предполагаем, что специальных символов нет, а слова разделяются пробелом.
Эта функция найдет первое самое длинное слово, т. Е. При значении ie будет выведено первое слово с самой длинной длиной. В приведенном ниже примере вы можете видеть, что looking
и longest
имеют одинаковое количество символов, но выводит только looking
.
public static void longestWordCalculator(String rawText)
{
int textLength = rawText.length();
String longestWord = "";
String[] words = rawText.split("\\s");
for (int i = 0; i < words.length; i++)
{
if (words[i].length() > longestWord.length()) {
longestWord = words[i];
}
}
System.out.println("Longest word: " + longestWord);
System.out.println("With length of: " + longestWord.length());
}
Использование: longestWordCalculator("Hello I am looking for the longest word");
Выходы
Самое длинное слово: смотрящий
С длиной: 7
РЕДАКТИРОВАТЬ:
Без использования массивов:
public static void longestWordCalculator(String rawText)
{
int nextSpaceIndex = rawText.indexOf(" ") + 1;
String longestWord = "";
do {
String word = rawText.substring(0, nextSpaceIndex);
rawText = rawText.substring(nextSpaceIndex); // trim string
if (word.length() > longestWord.length()) {
longestWord = word;
}
int tempNextIndex = rawText.indexOf(" ") + 1;
nextSpaceIndex = tempNextIndex == 0 ? rawText.length() : tempNextIndex;
} while (rawText.length() > 0);
System.out.println("Longest word: " + longestWord);
System.out.println("With length of: " + longestWord.length());
}