这是我的代码,用于反转数组的顺序:
int array[x];
String temp;
String reversedOrder = "";
for (int i = 0; i < x/2; i++)
{
temp = array[i];
array[i] = array[x-1 - i];
array[x-1 - i] = temp;
reversedOrder = reversedOrder + array[i];
}
System.out.println(reversedOrder);
我的问题是如何打印出这个新排序的数组?我尝试声明一个字符串并将其放在for循环中,但它不会按照我想要的方式打印:让我们说&#34; Hello World我在这里&#34;我需要它打印出来&#34; olleHdlroWImaereh&#34;但所有它打印的是前两个反转的词&#34; olleHdlroW&#34;并在那里结束。
感谢任何帮助。谢谢。
*我试图在我的OWN空闲时间写出这个程序。
*感谢大家帮助我完成我的课程。在添加类似于Elliot的for循环之后,它终于起作用了。 :欢呼。
答案 0 :(得分:1)
首先,最简单的方法是使用Arrays#toString()。其次,您的代码存在一些问题,
int[] array = { 1, 2, 3 }; // <-- your array declaration isn't valid.
// String temp; // <-- A String is not an int.
int x = array.length; // <-- added to demonstrate
for (int i = 0; i < x / 2; i++) {
// This is a swap with no temporary storage, also known as the
// http://en.wikipedia.org/wiki/XOR_swap_algorithm
array[i] ^= array[x - 1 - i];
array[x - 1 - i] ^= array[i];
array[i] ^= array[x - 1 - i];
}
System.out.println(Arrays.toString(array));
输出
[3, 2, 1]
修改强>
删除Arrays.toString(),并将其替换为类似的内容 -
StringBuilder sb = new StringBuilder();
for (int i : array) {
sb.append(i);
}
System.out.println(sb.toString());
输出
321
编辑2
或者,您可以使用
for (int i : array) {
System.out.print(i);
}
System.out.println();
哪个也会输出
321
答案 1 :(得分:0)
使用Arrays
类打印用户友好的array
Arrays.toString(array);
试试这个:
String[] array = new String[] { "Hello", "World", "I", "am", "here" };
String[] newArray = new String[array.length];
for (int i = 0; i < array.length; i++) {
newArray[array.length - 1 - i] = new StringBuilder(array[i]).reverse().toString();
}
System.out.println(Arrays.toString(newArray));
- 编辑 -
使用此字符串以字符串格式打印array
,不带任何逗号和括号
String str = Arrays.toString(array).replaceAll(", ", "");
System.out.println(str.substring(1, str.length() - 1));
答案 2 :(得分:0)
您的反向逻辑看起来是正确的,但是当您遍历charArray的一半时,您试图附加您的reversedOrder字符串。
您可以在for循环后使用String(char[])
构造函数将整个反向charArray作为String。
@Test
public void reverse() {
char[] charArray = "Hello World I am here".toCharArray();
int x = charArray.length;
for (int i = 0; i < x/2; i++) {
char temp = charArray[i];
charArray[i] = charArray[x-1 - i];
charArray[x-1 - i] = temp;
}
String expected = "ereh ma I dlroW olleH";
assertEquals(expected, new String(charArray));
}