两个变量不借助第三方怎么交换
两个变量不借助第三方怎么交换两个变量不借助第三方怎么交换
两个变量不借助第三方怎么交换
两个变量不借助第三方怎么交换
两个变量不借助第三方怎么交换 --------------------编程问答-------------------- a=b+a;
b=a-b;
a=a-b; --------------------编程问答-------------------- a=b+a;
b=a-b;
a=a-b;
比较靠谱! --------------------编程问答-------------------- 如果是字符串或是别的对象,还能行么? --------------------编程问答--------------------
异或方式
public static void main(String[] args) {
long x = 10;
long y = 20;
x = x ^ y;
y = x ^ y;
x = x ^ y;
System.out.println("X:" + x + "\n" + "Y:" + y);
}
不过该方法只适合整形变量! --------------------编程问答--------------------
这方法貌似绝就绝在即使数据溢出照样能正常交换 --------------------编程问答--------------------
是的啊,反正是以补码的方式进行运算的,溢出后,进位and借位抵消了 --------------------编程问答--------------------
+ --------------------编程问答-------------------- 为什么要这样呢? --------------------编程问答-------------------- 昨天的问题,今天又问。
还有,两个变量,你们看一下。
String s0 = "aaa"
String s1 = "bbb"
请大家告诉我这两个变量怎么换? --------------------编程问答-------------------- 道理类似,先拼接,然后用substring --------------------编程问答--------------------
--------------------编程问答-------------------- a=b+a;
int a=21,b=34;
//交换
a^=b;
b^=a;
a^=b;
b=a-b;
a=a-b; --------------------编程问答--------------------
这个是不是涉及到字面上一个小数减大数等于几
11111100
-
11111110
=
11111110
这种减法和补码有什么关系? --------------------编程问答--------------------
public static void main(String[] args) {
String a="xx";
String b="yy";
a=a+b;
b=a.substring(0, a.length()-b.length());
System.out.println(b);
a=a.substring(b.length(), a.length());
System.out.println(a);
}
结果正常 --------------------编程问答--------------------
正解 --------------------编程问答-------------------- a=b+a;b=a-b;a=a-b;
或者借用指针(c语言) --------------------编程问答-------------------- String a="aaa";
String b="bbb";
a+=","+b;
b=a.split(",")[0];
a=a.split(",")[1];
System.out.println(a);
System.out.println(b); --------------------编程问答--------------------
如果a="a.b"
b="a.c"
呢?
字符具有不确定性 --------------------编程问答-------------------- a=b+a;
b=a-b;
a=a-b; --------------------编程问答-------------------- 各位,我受教了 --------------------编程问答-------------------- b=a+b;
a=b-a;
b=a-b; --------------------编程问答--------------------
public static void main(String[] args){--------------------编程问答-------------------- 恩,恩,说有的道理 --------------------编程问答-------------------- 如果是理解算法的时候拿来做做例子还行,实际中用这种做法没啥意义。 --------------------编程问答--------------------
String s = "aaa";
String s1 = "bbb";
s = s1 + s;
s1 = s.substring(3);
s = s.substring(0, 3);
System.out.println(s + "\n" + s1);
}
靠谱 --------------------编程问答--------------------
+10086 --------------------编程问答--------------------
设置的间隔字符换一个和字符串里你一样的就好了吧。。 --------------------编程问答-------------------- 一般用不到,不过还是有点牛啊! --------------------编程问答--------------------
一直以为移位才靠谱,没发现这个无误。。
补充:Java , Java SE