如何在不使用Hashmaps的情况下对字符串中的字符重新排序?

时间:2017-02-25 22:14:13

标签: java string parsing character

我的代码下面给出了以下错误,我无法弄清楚原因。我试图按以下顺序重新排序输入的单词(" 波兰语"例如):

(第一个字母,最后一个字母,第二个字母,倒数第二个字母,第三个字母......等等)所以输出应该是" Phosli "。

Screenshot

更新了代码

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);
}

2 个答案:

答案 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}}从e5。因此,您的循环应递减3并递增e两次(因此您运行循环b次)。另外,

word1.length() / 2

需要:

int e = word1.length();

对于长度不均匀的单词(int e = word1.length() - 1;),您需要额外检查,否则您将重复中间字符。