簡體   English   中英

Java使用數組將英文轉換為Piglatin

[英]Java convert to English to Piglatin using array

我想編寫一個程序來使用 Java 將英語轉換為 Piglantin,但與傳統方式不同,我想將元音存儲在數組中......但顯然這不起作用,我明天有我的板,這會很有幫助如果你能指出我的錯誤......這是程序片段

class Piglatin_2
{

    public static void main(String s)
    {
        s = s.toUpperCase();
        char c[] = {'A', 'E', 'I', 'O', 'U'};
        String a = "";
        for(int i = 0; i < s.length(); i++)
        {
            for(int j = 0; j < 5; j++)
            {
               if(s.charAt(i) == c[j])
               {
                   a = s.substring(i) + s.substring(0, i) + "AY";
                   break;
               }
            }
       }
       System.out.println("Piglatin:"+a);
    }
}

我使用字符串“London”作為輸入。 假設的輸出應該是“ONDONLAY”但我得到“ONLONDAY”

我認為當你break ,你必須跳出兩個循環。 現在你的break語句只跳出內部循環。 嘗試這個:

public static void main_other(String s)
{
    s = s.toUpperCase();
    char c[] = {'A', 'E', 'I', 'O', 'U'};
    String a = "";
    outerloop:
    for(int i = 0; i < s.length(); i++)
    {
        for(int j = 0; j < 5; j++)
        {
           if(s.charAt(i) == c[j])
           {
               a = s.substring(i) + s.substring(0, i) + "AY";
               break outerloop;
           }
        }
   }
   System.out.println("Piglatin:"+a);
}

首先,您的主要方法必須采用一系列字符串,就像邁克爾的評論所說。 如果您嘗試翻譯每個單詞,這也對您有利。 如果你用一個句子作為參數運行你的程序,你的 args[] 數組將包含每個被空格分割的單詞。 例如,如果你的句子是“Hello World”並且你運行它

$ java -jar myapplication.jar hello world

那么你的 args 數組看起來像

args[0] = hello
args[1] = world

從那里你應該能夠遍歷數組並將每個單詞翻譯成豬拉丁語。

[意見] 如果你只是想有一個腳本來傳遞一個句子並返回豬拉丁語,使用 Java 是一種在高速公路上降落 747 的線路。 如果您使用的是 unix,您可能想要使用類似 python 甚至 shell 腳本的東西。 否則,您可以考慮使用一個循環來保持程序運行並使用 BufferedReader 接收輸入,這樣您就可以繼續翻譯句子,直到程序結束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM