L oop ожидает ввода, в то время как он должен был бы перебирать каждое слово предыдущего ввода - PullRequest
2 голосов
/ 09 марта 2020

Необходимо поменять каждое слово, которое начинается с гласного на самое длинное. Все вроде бы нормально, однако столкнулся с неожиданным поведением l oop, когда я вхожу в него - сканер хочет ввод (7-я строка). Вместо того, чтобы запрашивать ввод, он должен перебирать каждый элемент (слово) из предложения, которое я задал ранее (2-я строка). Я предполагаю, что что-то упустил.

    Scanner sc = new Scanner(System.in);
    String textToFormat = sc.nextLine();
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(textToFormat);

    while (sc.hasNext()) {
      currentWord = sc.next();
      if (currentWord.length() > longestWord.length()) {
        longestWord = currentWord;

      } else break;
    }

1 Ответ

1 голос
/ 09 марта 2020

Просматривая ваш код, я вижу, что вы пытаетесь найти самую длинную строку в предложении, введенном пользователем.
Нет необходимости вводить каждое слово индивидуально, когда вы просто можете ввести всю строку. Вам может помочь что-то вроде следующего кода:

import java.util.Scanner;

public class Main {

    public static String findLongestWord(String[] arr){
        String longest = "";
        for (String current : arr){
            // If the current word is larger than the longest.
            if(current.length() > longest.length()){
                longest = current; // Then set longest word to current.
            }
        }
        return longest;
    }

    public static void main(String[] args) {
        // Get the sentence from the user.
        System.out.println("Input a sentence: ");
        Scanner scan = new Scanner(System.in);
        String s = scan.nextLine();
        // Split sentence into words.
        String[] arr = s.split("\\W+");
        System.out.println("Longest word is " + findLongestWord(arr));
    }
}

При запуске с входом Find the longest word in this large sentence это выводит:

Input a sentence: 
Find the longest word in this large sentence.
Longest word is sentence
...