我想编写一个程序,使用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”
答案 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进行输入,这样您就可以继续翻译句子直到结束程序。