我的代码下面给出了以下错误,我无法弄清楚原因。我试图按以下顺序重新排序输入的单词(" 波兰语"例如):
(第一个字母,最后一个字母,第二个字母,倒数第二个字母,第三个字母......等等)所以输出应该是" Phosli "。
更新了代码
public static String encodeTheWord(String word1)
{
int b = 0;
int e = word1.length()-1;
String word2 = "";
for (int i=0; i<e; i++)
{
word2 = word2 + word1.charAt(b) + word1.charAt(e);
b+=1;
e-=1;
}
System.out.println(word2);
return (word2);
}
答案 0 :(得分:1)
你的for循环错误,你可以在索引 0 获得一个字符,直到 word1.length() - 1 ......
必须是
for (int i=0; i<word1.length()-1; i++)
同样适用于此......
word1.charAt(e);
因为您将 e 定义为 word1.length()
答案 1 :(得分:1)
对于包含偶数字符(波兰语)的字词,字符的顺序变为051423
,因此b
的最大值为2
,最小值为{ {1}}从e
到5
。因此,您的循环应递减3
并递增e
两次(因此您运行循环b
次)。另外,
word1.length() / 2
需要:
int e = word1.length();
对于长度不均匀的单词(int e = word1.length() - 1;
),您需要额外检查,否则您将重复中间字符。