Как найти самое длинное слово в строке БЕЗ массивов или методов, которые анализируют слова для вас - PullRequest
0 голосов
/ 13 февраля 2020

Это домашнее задание, которое я застрял на некоторое время. Задача состоит в том, чтобы использовать al oop, чтобы определить, какое слово самое длинное. В моей голове лог c вроде бы работает нормально, но каким-то образом вывод всегда привязан к предпоследней длине слова в строке. Например, если я введу 'Tom Cook' в качестве textBoi, вывод вернется как 3, хотя желаемый вывод должен быть как 4. TIA !!

public static void longboi(String textBoi)
{
    int lengthCounter = 0;
    int final = 0;
    int textLength = textBoi.length();

    for (int i = 0; i < textLength; i++)
    {
        String indexValue = Character.toString(textBoi.charAt(i));

        if(" ".equals(indexValue) || indexValue.equals(textBoi.charAt(textBoi.length()-1))) //if current index == space or last value of textBoi do this
        {
            if (lengthCounter > final) //if the lengthCounter is greater than the value you have right now, do this
            {
                final = lengthCounter;
                lengthCounter = 0;
            }
            else //if not, reset counter
            {
                lengthCounter = 0;
            }
        }
        else //otherwise, keep on counting
        {
            lengthCounter = lengthCounter + 1;
            System.out.print(lengthCounter);

        }            
    }
    System.out.println("this is output: " + final); //print out answer

}

1 Ответ

1 голос
/ 13 февраля 2020

Вы получаете этот неверный результат, потому что если это условие

indexValue.equals(textBoi.charAt(textBoi.length()-1))

, когда вы достигли последнего символа в строке, вам нужно увеличить текущий счетчик, если он не равен "", и только после этого сравнить с текущим максимумом. длина.

Также, пожалуйста, прочитайте об отладчиках и как их использовать в Java. Узнав его, вы сможете легко решить такие вопросы самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...