在Java中,如何交换两个字符串变量而不使用第三个变量,即temp变量?
String a = "one"
String b = "two"
String temp = null;
temp = a;
a = b;
b = temp;
但是在这里有第三个变量,我们需要消除第三个变量的使用。
在Java中,如何交换两个字符串变量而不使用第三个变量,即temp变量?
String a = "one"
String b = "two"
String temp = null;
temp = a;
a = b;
b = temp;
但是在这里有第三个变量,我们需要消除第三个变量的使用。
不使用第三个变量,可以这样做:
String a = "one";
String b = "two";
a = a + b;
b = a.substring(0, (a.length() - b.length()));
a = a.substring(b.length());
System.out.println("a = " + a);
System.out.println("b = " + b);
a = a.substring(b.length());
。 - Gaurang Tandona = b + (b = a).substring(0, 0);
。 这仍会为了节省本地变量而创建临时字符串实例,因此它仅是一种有趣的事情,而不是推荐的编码风格,但至少,这些字符串实例比连接操作 a + b
更便宜... - Holgersubstring
操作会生成新的字符串,这些字符串与原始字符串实例相等但不完全相同。 - Holger// 参考自这个答案:https://dev59.com/vXM_5IYBdhLWcg3wdzDz#16826296
在IT技术中,"fork"是指复制一个进程的副本。这个新的进程(子进程)和原始进程(父进程)在某些方面是相同的,但也有一些不同之处。子进程可以继承父进程的资源,如文件描述符、内存等,并且可以执行与父进程不同的代码路径。在Unix系统中,fork()函数用于创建子进程。String returnFirst(String x, String y) {
return x;
}
String a = "one"
String b = "two"
a = returnFirst(b, b = a); // If this is confusing try reading as a=b; b=a;
String a="one";
String b="two";
a = a.concat("#" + b);
b = a.split("#")[0];
a = a.split("#")[1];
public class SwapStringVariable {
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = "test";
String b = "paper";
a = a + b;
b = a.substring(0, a.length() - b.length());
a = a.substring(b.length(), a.length());
System.out.println(a + " " + b);
}
}
String str1 = "first";
String str2 = "second";
str1 = str2+str1;
str2 = str1.substring(str2.length(),str1.length());
str1 = str1.substring(0,(str1.length() - str2.length()));
System.out.println(str1);
System.out.println(str2);
String name = "george";
String name2 = "mark";
System.out.println(name+" "+name2);
System.out.println(name.substring(name.length()) + name2 + " "+ name );
在这里,substring()方法返回空字符串。因此,可以添加名称。
String a = "one";
String b = "two";
System.out.println("Before swap: " a + " " + b);
int len = a.length();
a = a + b;
b = a.substring(0, len);
a = a.substring(len);
System.out.println("After swap: " a + " " + b);
包 com.core;
公共类 SwappingNoTemp {
public static void main(String[] args) {
String a = "java";
String b = "c";
a = a + b;
b = a.substring(0, a.length() - b.length());
a = a.substring(b.length());
System.out.println("swapping is a.." + a);
System.out.println("swapping is b.." + b);
}
}
字符串相关方法1:
public class SwapWithoutThirdVar{
public static void main (String args[]){
String s1 ="one";
String s2 ="two";
s1= s1+s2;
s2 = s1.substring(0,(s1.length()-s2.length()));
s1 = s1.substring(s2.length());
System.out.println("s1 == "+ s1);
System.out.println("s2 == "+ s2);
}
}
方法二:
public class SwapWithoutThirdVar
{
public static void main (String[] args) throws java.lang.Exception
{
String s1 = "one";
String s2 ="two";
s1=s2+s1;
s2=s1.replace(s2,"");
s1=s1.replace(s2,"");
System.out.println("S1 : "+s1);
System.out.println("S2 : "+s2);
}
}
针对整数
公共类 SwapWithoutThirdVar {
public static void main(String a[]){
int x = 10;
int y = 20;
x = x+y;
y=x-y;
x=x-y;
System.out.println("After swap:");
System.out.println("x value: "+x);
System.out.println("y value: "+y);
}
}
你可以这样做。
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = "one";
String b = "two";
System.out.println(a);
System.out.println(b);
a = a+b;
b = "";
System.out.println("*************");
b = a.substring(0, 3);
a = a.substring(3, 6);
System.out.println(a);
System.out.println(b);
}