实现数组逆序打印
/**
* Reverse Array
* 将数组中第一个元素和最后一个元素交换位置
* 将第二个元素和倒数第二个交换位置
* 以此类推,中间的元素和自己交换,等价于没动.
*/
public class Assign04 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5,6};
int[] accArr=ReverseArray(arr);
for (int i : accArr) {
System.out.println(i);
}
}
public static int[] ReverseArray(int[] arr){
for (int i = 0; i < arr.length/2; i++) {//这里除以二是防止再次判断.如果不除2,还是会将换过来的元素再换回去
if (arr[i]<arr[arr.length-i-1]) {//
//-i-1,第一个和最后一个交换就是arr[0]和arr[6-0-1]
//第二个和倒数第二个交换就是arr[1]和arr[6-1-1];以此类推
int temp=arr[arr.length-i-1];
arr[arr.length-i-1]=arr[i];
arr[i]=temp;
}
}
return arr;
}
}
如果想实现逆转字符串打印也是同样的道理
import java.util.Scanner;
public class Practice01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串,程序将逆转字符串并输出:");
String input = sc.next();
String recieveString=reverseString(input);
System.out.println(recieveString);
// System.out.println(recieveString.substring(1));
}
/**
* 反转键盘录入的字符串。
* @param s
* @return
*/
public static String reverseString(String s){
char[] c = s.toCharArray();
for (int i = 0; i < c.length/2; i++) {
char temp = c[c.length-i-1];
c[c.length-i-1]=c[i];
c[i]=temp;
}
s= s.valueOf(c);
return s;
}
}
字符串比字符好办多了.可以直接倒着打印一遍再输出就行了
public static String reverseString2(String s) {
char[] chars = s.toCharArray();
String ss = "";
for (int i = chars.length - 1; i > -1; i--) {
char c = chars[i];
ss += c;
}
// System.out.println(Arrays.toString(chars));
return ss;
}
学了集合的话,更容易用ArrayList更好做.