【发布时间】:2016-05-26 19:41:45
【问题描述】:
我目前正在为 AP 计算机科学编写一个 Java 程序,目标是将一个英语句子翻译成 Pig Latin。我的完整程序代码是 http://pastebin.com/PJgpveAh
但主要问题(我相信)是
public static String pigLatSent(String sent)
{
sent.trim();
String finalSent="";
ArrayList<Integer> spaceIndexes= new ArrayList<Integer>();
spaceIndexes.add(0);
for(int i=0;i<sent.length();i++)
{
if(sent.charAt(i)==' ')
{
spaceIndexes.add(i);
}
}
for(int i=0;i<spaceIndexes.size()-1;i+=2)
{
int value=spaceIndexes.get(i);
int value1=spaceIndexes.get(i+1);
finalSent+=pigLat(sent.substring(value, value1))+" ";
}
return finalSent;
}
输入“你好,你好吗” 程序返回“你翻译的句子是 ellohay are ay” 当它应该是“您的翻译句子是“您的翻译句子是 ellohay owhay areway ouyay”时
空格的索引一定有问题。我有心理障碍。
【问题讨论】:
-
Pig latin 似乎是一个比这更复杂的答案。您的 CS 课程对 Pig Latin 的定义是用
string.substring(1) + string.charAt(0) + "ay"替换所有字符串吗? -
使用
sent.split(" ")会更容易,它将sent拆分为String[],由空格分隔。更好的是,sent.split("\\s+")拆分发送到String[]拆分任意数量的任何类型的空白。 -
在 Stack Overflow 上有 many other questions and answers 关于 Java 中的 Pig Latin 翻译器。它们也可能会有所帮助。