實現數組逆序打印
/**
* 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更好做.