【发布时间】:2019-02-20 10:06:48
【问题描述】:
所以基本上不能/被允许创建一个新数组。无法返回任何内容,但实际上更改和操作当前数组。您如何获取一组字符并简单地翻转/反转它们。
Starting array: ['P','e','r','f','e','c','t',' ','M','a','k','e','s',' ','P','r','a','c','t','i','c','e']
将每个以空格分隔的单词反转
Reversed: ['P','r','a','c','t','i','c','e',' ','M','a','k','e','s',' ','P','e','r','f','e','c','t']
这是我目前所拥有的
代码:
class Main {
public static void main(String[] args) {
char[] charArr = new char[] {'P','e','r','f','e','c','t',' ','M','a','k','e','s',' ','P','r','a','c','t','i','c','e'};
reverseCharArray(charArr);
}
public static void reverseCharArray() {
int arrLength = charArr.length;
for (int i = 0; i <= arrLength / 2; i++) {
charArr[arrLength - i - 1] = charArr[i];
System.out.println(charArr);
}
}
}
更新: 好的,我发现就是这样。我需要做的实际上是交换字符的句子拼写的单词。使句子倒转/倒转。
注意:这是在一次在线采访中尝试的: enter link description here
【问题讨论】:
-
这里有很多问题。首先,您将丢失数据,因为您正在覆盖 char 数组中的数据而不是实际交换。其次,您正在反转整个 char 数组。在您的示例中,您反转了完整的单词而不是字符。
-
@Hunter 你想交换两个区间还是反转整个数组?
-
反转整个数组@IvanKukic
-
@Hunter 您的示例输入/输出表明您只交换了数组中的一些字符,
'M', 'a', 'k', 'e', 's'根本没有移动。 -
如果你反转整个数组,你会得到
['e','c','i','t','c','a','r','P',' ','s','e','k','a','M',' ','t','c','e','f','r','e','P'],而不是问题中的内容