Say x & y are the integer variables. Скажем х и у являются переменными целое. The challenge is to swap them without using a temporary variable. Задача состоит в том, чтобы их без подкачки, используя временную переменную.

The solution is as simple as the problem itself: Решение же просто, как сама проблема:
x = x + y; х = х + у;
y = x - y; у = х - год;
x = x - y; х = х - год;

Update 1: Jack and Alexey pointed out a typo in my solution which has since been corrected. Update 1: Джек и Алексей отметил, опечатка в моем решение, которое с тех пор была исправлена. Please see their comments below. Просьба свои замечания см. ниже.

The simplicity of the solution appeals to me. Простота решения обращается ко мне. It clearly demonstrates the meaning of assignment operator ( “=” ). Он ясно показывает смысл уступки оператора ( "=").

What if they are Strings? Что делать, если они струнах?
Note: You can use String methods in Java API. Примечание: Вы можете использовать методы String в Java API.

Here is the solution: Вот решение:
x = x + y; х = х + у;
y = x.substring(0, x.indexOf(y)); у = x.substring (0, x.indexOf (у));
x = x.substring(x.indexOf(y) + y.length()); х = x.substring (x.indexOf (г) + y.length ());

Can you see the similarity? Можете ли вы видите сходства?

Can you provide a simpler solution to either of the above? Можете ли вы представить простое решение для любой из выше?

Update 2: Robert just did (see his comment below). Update 2: Роберт только что сделал (см. его комментарий ниже). He pointed out that the String solution doesn’t work when one string is contained in another. Он указал на то, что String решение не работает, когда одна строка содержится в другом. His solution is: Его решение заключается в следующем:

x = x + y; х = х + у;
y = x.substring(0, x.length() - y.length()); у = x.substring (0, x.length () - y.length ());
x = x.substring(y.length()); х = x.substring (y.length ());