11、不使用第三個變量,使兩個變量的值交換

編程題目:

11.int a = 3;int b = 5;不使用第三個變量,使a,b的值交換。如果是字符串呢?例如:String str1 = “a”;String str2 = “b”。

示例代碼:

package program.calculation.exercise11;

/**
 * 11.int a = 3;int b = 5;不使用第三個變量,使a,b的值交換。
 * 如果是字符串呢?String str1 = "a";String str2 = "b";
 */

public class ValueSwap {
    public static void main(String[] args) {

        int a = 3;
        int b = 5;
        swapInt(a,b);

        String str1 = "a";
        String str2 = "b";
        swapString(str1,str2);

    }

    //整數型:三次加減操作
    private static void swapInt(int a, int b) {

        a = a+b; //將a,b的值全部存放在a裏, a=8
        b = a-b; //a的值減去b的值就是原先a的值了,所以把原先a的值賦給了b, b=3
        a = a-b; //現在的a還是相加後的a,b已是交換後的b,a-b就是將a,b的和減去原先a的值,就剩下原先b的值了,所以a=8-3=5
        System.out.println(a+" "+b);

    }

    //字符串型:同理,只不過加減變成拼接和截取
    private static void swapString(String str1, String str2) {

        str1 = str1+str2; //合併到str2
        str2 = str1.substring(0,str1.length()-str2.length());
        //截取前面長度爲4的字符串 str1=”abcd”
        str1 = str1.substring(str2.length());
        //截取最後長度爲2的字符串 str2=”00”
        System.out.println(str1+" "+str2);

    }
}

結果顯示:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章