如何反转String数组?

时间:2014-11-07 05:34:31

标签: java

String [] reverse = {"a", "b", "c", "1", "2", "3"};
for ( String forward : reverse )
    System.out.print ( forward + " ");
for ( int j = 0; j < array.length ; j++){
    //j = last index of reverse -1 everytime this loops
    reverse[i] = reverse[j]
}

我需要找到一种获取原始j的值的方法吗?我考虑过做一个嵌套的for循环,但这会导致循环太多。我可以手动完成,我想尽可能高效地完成它,特别是如果我开始使用更长的字符串。

6 个答案:

答案 0 :(得分:4)

试试这个

    Collections.reverse(Arrays.asList(reverse));

答案 1 :(得分:2)

如果要反转数组,则必须在数组中间停止迭代。否则你将它反转两次,因此它保持不变。将for循环更改为:

for ( int j = 0; j < array.length/2 ; j++){

不幸的是我不明白为什么你需要2个循环。只是打印初始数组?

答案 2 :(得分:0)

要反转数组,您只需迭代一半数组并开始从end开始交换元素。交换元素(从开始的位置)与元素(结束位置 - 从开始的位置)

for (i = 0; i < reverse.length / 2; i++) {
  String temp = reverse[i];
  reverse[i] = reverse[reverse.length - 1 - i];
  reverse[reverse.length - 1 - i] = temp;
}

答案 3 :(得分:0)

您可以这样做: -

String [] reverse = {"a", "b", "c", "1", "2", "3"}; 
StringBuilder builder = new StringBuilder(); //use String builder to build
for(String s : reverse) {
  builder.append(s);
 }
reverse = builder.reverse().toString().split("");

- &gt;使用StringBuilder构建String

- &gt;反转字符串

- &gt;再次拆分以形成单个String元素的数组

答案 4 :(得分:0)

首先,您可以使用Arrays.toString(Object[])打印String[]。然后你可以迭代一半的数组并将当前位置的String与它相应的对交换(在长度 - 当前索引处,记住Java数组是零索引的,所以数组中的最后一个位置是array.length - 1)。最后,再次打印。像,

String[] reverse = { "a", "b", "c", "1", "2", "3" };
System.out.println(Arrays.toString(reverse));
for (int i = 0, len = reverse.length / 2; i < len; i++) {
    String t = reverse[i];
    int p = (reverse.length - 1) - i; // 0,len - 1,len-1 - 2,len-2, etc.
    reverse[i] = reverse[p];
    reverse[p] = t;
}
System.out.println(Arrays.toString(reverse));

输出

[a, b, c, 1, 2, 3]
[3, 2, 1, c, b, a]

答案 5 :(得分:0)

通过使用Collections.reverse()方法,您可以获得反向元素列表,但首先您必须将字符串数组添加到列表中。 String[] elements = {"a","b","c"}; List<String> list = Arrays. as-list(elements); Collections.reverse(list); 之后你会迭代。