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循环,但这会导致循环太多。我可以手动完成,我想尽可能高效地完成它,特别是如果我开始使用更长的字符串。
答案 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);
之后你会迭代。