如何交换没有临时变量的两个字符串变量的值
本文关键字:变量 两个 字符串 何交换 交换 | 更新日期: 2023-09-27 18:07:11
例如,我有两个字符串变量:
string a = " Hello ";
string b = " World ";
如何在没有临时变量的情况下交换它?
我找到了一个例子,但是它使用了第三个变量来表示a
的长度:
int len1 = a.Length;
a = a + b;
b = a.Substring(0, len1);
a = a.Substring(len1);
我该怎么做呢?
UPD,十进制数据类型的建议解决方案,在大多数情况下,我已经询问了字符串数据类型。
可以使用SubString
而不使用临时变量,如下所示:
string a = " Hello ";
string b = " World ";
a = a + b;//" Hello World "
b = a.Substring(0, (a.Length - b.Length));//" Hello "
a = a.Substring(b.Length);//" World "
请使用其他方式进行交换。
string stringOne = "one";
string stringTwo = "two";
stringOne = stringOne + stringTwo;
stringTwo = stringOne.Substring(0, (stringOne.Length - stringTwo.Length));
stringOne = stringOne.Substring(stringTwo.Length);
// Prints stringOne: two stringTwo: one
Console.WriteLine("stringOne: {0} stringTwo: {1}", stringOne, stringTwo);
string str1 = "First";
string str2 = "Second";
str1 = (str2 = str1 + str2).Substring(str1.Length);
str2 = str2.Substring(0,str1.Length-1);
我喜欢这样做,尽管它在下面使用资源使其完全线程安全,如果它在幕后使用局部变量,我不会感到惊讶。
string str1 = "First";
string str2 = "Second";
str2 = System.Interlocked.Exchange(ref str1, str2);