java - 反转字符串数组中的字符

标签 java arrays string char

我正在处理其他一些方法,但我不知道如何处理这个方法。我想更改数组内字符串的顺序(不是字符串*s*的顺序),但这不被接受。有什么想法吗?

public void invert() {

        for(int i = 0; i < array.length; i++){
            for(int j = 0, k = array[i].length() - 1; j < k; j++, k--){
                char a = array[i].charAt(j);
                array[i].charAt(j) = array[k].charAt(k); //ERROR HERE
                array[i].charAt(k) = a;                  //AND HERE
            }
        }
    }

编辑:我将在这里留下我的意思。 我有一个数组 = {"Hello", "Goodbye"} 我想将其更改为 {"olleH", "eybdooG"}

最佳答案

Java 字符串是不可变的。您无法更改它们。

(但是您可以将字符串转换为 StringBuilder - http://docs.oracle.com/javase/tutorial/java/data/buffers.html - 这本质上是一个可变字符串,更改字符,然后将 StrignBuilder 转换回 String。)

尝试这个代码(我还没有测试过,但我希望它有效):

    for(int i = 0; i < array.length; i++) {
        StringBuilder b = new StringBuilder(array[i]);
        for(int j = 0, k = b.length() - 1; j < k; j++, k--){
            char a = b.charAt(j);
            b.setCharAt(j, array[k].charAt(k));
            b.setCharAt(k, a);                  
        }
        array[i] = b.toString();
    }

关于java - 反转字符串数组中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20526384/

相关文章:

使用 document.addEventListener 切换链接的 Javascript 数组

c++ - SDL 中的动态纹理加载

java - 为什么 Java 的 String 中的 hashCode() 使用 31 作为乘数?

android - 包含阿拉伯语和变量的字符串

Java多线程用于模拟数据

c - 在C中迭代结束时打印出迭代数组

java - 如何在 Spring 测试中设置环境变量或系统属性?

php - 从数组中删除最旧的元素

java - Java中NavigableSet、SortedSet和TreeSet的区别

java - 如何使用 Java 和 MySQL 在一条语句中插入两个不同的表?