最近我接受了一次采访,他们要求我交换两个字符串,不使用任何第三个变量,不使用任何字符串方法,如substring, replace或不使用StringBuilder
和StringBuffer
。
,
String str1 = "hello";
String str2 = "morning";
输出:
String str1 = "morning";
String str2 = "hello";
这里有一个利用赋值表达式(和求值顺序)的技巧:
str2 = (new String[] { str1, (str1 = str2) })[0];
当然可以有很多变化,但这就是它。
在做了一些有线实践之后,我得到了一个使用三元运算符的更复杂的解决方案。
解决方案:str1 =str2+ ((str2)=str1=null?">:");