如何在不使用第三个变量的情况下交换两个字符串值

时间:2019-06-15 06:40:56

标签: string

在一次采访中,我遇到一个问题-如何在不使用第三个变量的情况下交换两个字符串。下面是代码:

String str1 =“ Hello”; 字符串str2 =“世界”;

我们必须在不使用第三个变量的情况下交换str2 =“ Hello”和str1 =“ World”。

我的回答就像str1 =“ World”&str2 =“ Hello”。 我没有看到此分配中的任何错误,因为如果我这样分配,我只是在交换字符串文字。但是他不同意。如果字符串文字池中已经存在字符串文字,我们可以使用它来交换,因此在这种情况下我的答案是错误的。

从访谈中回来后,我看到的解决方案与下面的代码没什么不同:How to swap two string variables in Java without using a third variable

我想我的面试官期望的解决方案如上面的链接所示,但是不需要使用subString方法,因为可以使用相同的字符串文字进行交换。

我想了解,我的回答/理解有什么问题吗

1 个答案:

答案 0 :(得分:0)

String str1 = "Hello";
String str2 = "World";

str1 = str1 + str2;
str2 = str1.substring(0, (str1.length() - str2.length()));
str1 = str1.substring(str2.length());

System.out.println("str1 = " + str1);
System.out.println("str2 = " + str2);