下面是我将句子中的所有单词转换成piglatin的代码,即“她的食物被偷了”转换成“erhay oodfay isay olenstay”,但是我得到的输出是erhay。如有任何更正,将不胜感激。谢谢。
public class piglatin
{
public void main(String s)
{
s=s.toUpperCase();
s=s+" ";
int l=s.length();
String word="";
int n=0;
int w=0;//no of words in s(loop1)
int wor=0;//no of words loop2
for(int i=0;i<l;i++)
{char c=s.charAt(i);
if(c==' ')
w++;
}
for(int i=0;i<l;i++)
{ char c=s.charAt(i);
int m=s.indexOf(' '); //length of first word
if(i==0)
{ for(int j=0;j<m;j++)
{char c1=s.charAt(j);
if(c1=='A'||c1=='E'||c1=='I'||c1=='O'||c1=='U')
{n=j;//index of first vowel
j=m;}
}
word=s.substring(n,m)+s.substring(0,n);
System.out.print(word+"AY"+" ");
}
if(c==' '&&wor!=w-1)
{ s=s.substring(m+1,l);
l=s.length();
i=0;
wor++;
}
if(wor==w-1)
i=l+1;
}
}
}
1条答案
按热度按时间p8ekf7hl1#
通过在空格上拆分句子并处理结果数组中的每个单词,可以大大简化它。
示例运行:
或者,除了使用
String#indexOf(int ch)
,您可以使用String#indexOf(String str, int fromIndex)
把这个句子的所有单词都记下来。示例运行: