保留空间并反转string_explain逻辑_Else其他任何优化的代码[关闭]

问题描述 投票:0回答:2
static void reverseString(String input) { char[] inputArray = input.toCharArray(); char[] result = new char[inputArray.length]; for (int i = 0; i < inputArray.length; i++) { if (inputArray[i] == ' ') { result[i] = ' '; } } int j = result.length - 1; for (int i = 0; i < inputArray.length; i++) { if (inputArray[i] != ' ') { if (result[j] == ' ') { j--; } result[j] = inputArray[i]; j--; } } System.out.println(input + " --> " + String.valueOf(result)); }
CAn有人解释了这两个for循环是如何工作的,感到困惑。还有其他优化的代码吗?
java string char reverse space
2个回答
1
投票
第一个for循环在输入数组中的相应空间中存储结果数组中的空间,即,为了保留该空间,无论输入数组中有何空间,第一个for循环都将结果数组中的空间存储为at相同的索引位置。

由于已经存储了空格,因此在第二个循环中将其余字符串反转。

在第二个循环中使用if语句忽略输入数组中存在的空格。当在结果数组中遇到空格时反转get时,它通过减小j的值和增大i的值,移至下一个索引位置,以相反的顺序存储剩余的字符串。


0
投票
由于SAI已经解释了代码,您可以使用此替代方法在单个循环中实现此目的
© www.soinside.com 2019 - 2024. All rights reserved.