在java中反转字符串的问题

问题描述 投票:0回答:1

无法使用 char[] 数组反转我的字符串 如果我的输入是极客并且输出应该是 skeeg 如果我使用 charAt 函数反转,它会正确反转字符串,如果我使用reverse[i]=reverse[j],我无法正确反转它(j=反转的长度),为了清楚查看,请查看我的代码。 上面的代码给我的输出是错误的,例如如果我的输入是极客,它给出的输出是 skeks 如果我更改该行reverseword[j]=reverseword[i];反转字[j] = test.charAt(i);它给出了正确的输出。 因为 reveredword 也包含相同的单词,但它在反转字符串时会出现问题,但在使用 test.chatAt 时它可以工作吗? 使用reverseword[j]=reverseword[i];反转字符串有什么问题?

class reverse {

    public static String sample(String str) {
        String test = str;
        char[] reverseword;

        reverseword = test.toCharArray();

        int j = 0;
        
        for (int i = reverseword.length - 1; i >= 0; i--) {
            reverseword[j] = reverseword[i];
            j++;
        }

        String finalresult = new String(reverseword);
        return finalresult;
    }
} 
java arrays string char reverse
1个回答
0
投票

在您的代码中,您尝试同时在同一数组中读取和写入数据,这会导致数据丢失。当您开始从数组末尾读取数据并将其写入数组开头时,实际上是在覆盖原始数据。 但是,当您使用

charAt
时,您正在读取原始字符串,该字符串在整个过程中没有被修改。这样就可以正确地从字符串末尾取出字符了。

© www.soinside.com 2019 - 2024. All rights reserved.