Нашел этот код в Интернете, по какой-то причине отсутствует логика цикла while «while (i ....)», и хотя я нашел другие рабочие решения проблемы PigLatin *, я действительно хочу понять, как это работает.

* Задача PigLatin: взять предложение, взять первую букву из каждого слова и поместить ее в конец того же слова, затем суффикс «ау». Таким образом, «Я запутался» превращается в «Iay maay onfusedcay».

Вот код:

        import java.util.*;
        public class PigLatin {
            
            public static void main(String[] args) {
                        
                Scanner input = new Scanner(System.in);
                    
                System.out.println("Please enter an English sentence: ");
                String sentence = input.nextLine();
                
                System.out.println("Original sentence: "+sentence);
                System.out.println("PigLatin conversion: "+convert(sentence));
            }
            
        private static String convert (String sentence) {
                
                String []words = sentence.split(" ");
                int i = 0;
                String pigLatin = "";
                while(i ){ //MISSING CODE
                    pigLatin+=words[i].substring(1,words[i].length())+words[i].charAt(0)+"ay"+" ";
                    i++;
                }
                return pigLatin;
            }
        }

Спасибо.

PS: Я нашел в Интернете метод "convert" и написал остальной код, попробовал несколько вещей, но не смог заставить работать цикл while.

3
user7642744 22 Ноя 2020 в 12:33

2 ответа

Лучший ответ

Кажется, что цикл повторяет массив words. Так что это должно быть что-то вроде

while(i < words.length) {
    pigLatin += words[i].substring(1, words[i].length())
            + words[i].charAt(0) + "ay ";
    i++;
}
2
Elliott Frisch 22 Ноя 2020 в 09:35
import java.util.Scanner;

public class PigLatin {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("Please enter an English sentence: ");
        String sentence = input.nextLine();

        System.out.println("Original sentence: "+sentence);
        System.out.println("PigLatin conversion: "+convert(sentence));
    }

    private static String convert (String sentence) {

        String []words = sentence.split(" ");
        int i = 0;
        String pigLatin = "";
        while(i<words.length){ //CORRECTION CODE
            pigLatin+=words[i].substring(1,words[i].length())+words[i].charAt(0)+"ay"+" ";
            i++;
        }
        return pigLatin;
    }
}
0
MR. GEEK 22 Ноя 2020 в 09:48
64952581