1

英語を豚ラテン語に変換するプログラムを設計する必要があります。ユーザーから提供された入力に含まれるすべての単語を Pig Latin に変換するのに苦労しています。現在のコードでは、次の出力が得られます。

入力: これは機能していません
出力: 履歴が機能していません

私の望ましい出力は次のとおりです。

入力: これは機能していません。
出力: Histay ishay otnay orkingway

私は何を間違っていますか?私は正しい方向へのプッシュを探しているだけです。

public class piglatin {

    // A program designed to convert English words in to Pig Latin
  public static void main(String[] args) {

    char a, e, i, o, u, A, E, I, O, U, b;   
    String alphabet = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";

    Scanner word = new Scanner (System.in);         
    System.out.println("Please enter a word: ");                
    String incoming = word.nextLine();              
    System.out.println("Input: " + incoming);

    String newincoming = incoming.substring(1); 
    String newerincoming = incoming.substring(0,1);

    a = alphabet.charAt(0);
    e = alphabet.charAt(8);
    i = alphabet.charAt(16);
    o = alphabet.charAt(28);
    u = alphabet.charAt(40);
    A = alphabet.charAt(1);
    E = alphabet.charAt(9);
    I = alphabet.charAt(17);
    O = alphabet.charAt(29);
    U = alphabet.charAt(41);
    b = incoming.charAt(0);         

    if ((b == a) || (b == e) || (b == i) || (b == o) || (b == u) || (b == A) || (b == E) || (b == I) || (b == O) || (b == U)) {             
      System.out.println("Output: " + incoming + "hay");
    } else {  
      System.out.println("Output: " + newincoming + newerincoming + "ay");
    }
  }     
}
4

1 に答える 1

3

入力:これは機能していません
出力:彼は機能していませんTay

テキストの行全体を読んでいて、文全体に「豚ラテン語」ルールを適用しています。これにより、文の最初の文字が削除され、最後の単語の末尾に配置されます。

これを機能させるには、splitスペースの前後に文字列を入力し、ループ内の各単語にピッグ ラテン語の規則を適用する必要があります。入力として文字列を受け取り、豚のラテン語変換を行うメソッドを作成することをお勧めします。そうすれば、メソッドによって返される配列内の各単語に対してメソッドを呼び出すだけで済みますsplit

于 2012-10-22T19:09:59.223 に答える