编程题目:
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; //合并到str1
//将原str1截取赋值给str2
str2 = str1.substring(0,str1.length()-str2.length());
//将str2赋值给str1
str1 = str1.substring(str2.length());
System.out.println(str1+" "+str2);
}
}