我正在处理其他一些方法,但我不知道如何处理这个方法。我想更改数组内字符串的顺序(不是字符串*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/