Java使用数组将英语转换为Piglatin

时间:2018-03-21 17:22:03

标签: java string

我想编写一个程序,使用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”

2 个答案:

答案 0 :(得分:1)

我认为当你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);
}

答案 1 :(得分:0)

首先,你的主要方法必须采用一系列字符串,就像Michael的评论所说。如果您试图翻译每个单词,这对您也有利。如果您使用句子作为参数运行程序,则您的args []数组将包含由空格分隔的每个单词。例如,如果您的句子是“Hello World”并且您使用

运行它
$ java -jar myapplication.jar hello world

然后你的args数组看起来像

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

从那里你应该能够迭代数组并将每个单词翻译成猪拉丁语。

[意见]如果你只是想要一个脚本来传递一个句子并返回猪拉丁语,那么使用Java就可以在高速公路上登陆747。如果你使用的是unix,你可能想要使用像python甚至shell脚本这样的东西。否则,您可能会考虑使用一个循环来保持程序运行并使用BufferedReader进行输入,这样您就可以继续翻译句子直到结束程序。