例如,我有两个字符串变量:
string a = " Hello "; string b = " World ";
没有临时变量我怎么交换它呢?我找到了一个例子,但是它使用了第三个变量来表示a的长度:
a
int len1 = a.Length; a = a + b; b = a.Substring(0, len1); a = a.Substring(len1);
我该怎么做呢?UPD,十进制数据类型的建议解决方案,在大多数情况下,我问过字符串数据类型。
lc8prwob1#
您可以在不使用temp变量的情况下使用SubString,如下所示:
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 "
2sbarzqh2#
只是使用一些其他的交换方式。
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);
4smxwvx53#
string str1 = "First"; string str2 = "Second"; str1 = (str2 = str1 + str2).Substring(str1.Length); str2 = str2.Substring(0,str1.Length-1);
5f0d552i4#
我喜欢这样做,虽然在下面它使用资源使它完全线程安全,如果它在幕后使用局部变量,我不会感到惊讶。
string str1 = "First"; string str2 = "Second"; str2 = System.Interlocked.Exchange(ref str1, str2);
4条答案
按热度按时间lc8prwob1#
您可以在不使用temp变量的情况下使用
SubString
,如下所示:2sbarzqh2#
只是使用一些其他的交换方式。
4smxwvx53#
5f0d552i4#
我喜欢这样做,虽然在下面它使用资源使它完全线程安全,如果它在幕后使用局部变量,我不会感到惊讶。