如何在Java中不使用第三个变量的情况下交换两个字符串?
交换两个字符串(例如s1和s2)的内容而不使用第三个字符串。
首先,使用连接运算符“+”连接给定的两个字符串,并将其存储在s1中(第一个字符串)。
s1 = s1+s2;
String类的substring方法用于此方法,该方法具有两个变体,并返回作为该字符串的子字符串的新字符串。子字符串以指定索引处的字符开头,并延伸到该字符串的末尾,或者直到endIndex–1(如果提供了第二个参数)。
现在,使用String类的substring()方法将s1的值存储在s2中,反之亦然。
s2 = s1.substring(0,i); s1 = s1.substring(i);
示例
public class Sample { public static void main(String args[]){ String s1 = "tutorials"; String s2 = "point"; System.out.println("交换之前s1的值:"+s1); System.out.println("交换之前s2的值:"+s2); int i = s1.length(); s1 = s1+s2; s2 = s1.substring(0,i); s1 = s1.substring(i); System.out.println("交换后s1的值:"+s1); System.out.println("交换后s2的值:"+s2); } }
输出结果
交换之前s1的值:tutorials 交换之前s2的值:point 交换后s1的值:point 交换后s2的值:tutorials