2017-01-28 12 views
-1

Я работаю над проектом для своего курса по программированию с помощью WGU. Я решил адаптировать испанский конвертер свинца на основе python из предыдущего курса. Я почти сделал это, но когда я запускаю программу, я получаю дополнительное слово. Например, если я вхожу в латинский язык, он печатает atinLay, а затем на следующей строке печатает inLatay.Java Pig Latin Converter выплескивает лишнее слово

enter image description here

Я не уверен, какая часть кода является причиной этого. Я знаю, что это должно быть простое исправление, но я просто не могу его найти. Вот мой код:

import java.util.Scanner; 

public class PigConverter 
{ 
public static void main(String[] args) 
    { 
Scanner anscay = new Scanner(System.in); 
System.out.print("Enter a word:"); 
String word = anscay.nextLine(); 
System.out.println("This word, in pig latin, would be:"); 

String pigConvert; 
for (int i=0; i < word.length(); i++) 
     { 
     if(word.charAt(i)=='a' || word.charAt(i)=='e' || word.charAt(i)=='i' || 
      word.charAt(i)=='o' || word.charAt(i)=='u') 
      { 
       String second = word.substring(0,i); 
       String first = word.substring(i,word.length()); 
       System.out.println(first+second+"ay");  
      } 

     } 
    } 
} 
+0

так что должно быть ожидаемым результатом для латинского? –

+0

@MaciejKowalski * Pig Latin. В основном это просто английский, где первое письмо перемещается в конец, а «ay» добавляется, если оно было согласным. – Carcigenicate

+0

Вы должны поместить результаты программы в строку, потому что каждая ссылка в конечном итоге является мертвой ссылкой. Что вы пробовали? Каковы были результаты? Поскольку вы получаете дополнительные результаты, вам придется сосредоточиться на условиях цикла for. – jdv

ответ

2

Я думаю, что ваш цикл является нахождение ОБА гласные в слове, так что/с делает вывод дважды. Я думаю, что ваша петля должна сломаться, как только вы найдете первый гласный.