如何在不使用临时变量的情况下交换两个字符串

本文关键字:交换 情况下 字符串 两个 变量 | 更新日期: 2023-09-27 18:30:31

如何在不使用 C# 中临时变量的情况下交换两个字符串?

string str1 = "First";
string str2 = "Second";
str1 = string.Concat(str1, str2);
str2 = str1.Replace(str2, "");
str1 = str1.Replace(str2, "");

如何在不使用临时变量的情况下交换两个字符串

我永远不会做以下解决方案,也不会期望我的同事在不使用临时变量的情况下进行这种交换。这是最简单、最清晰、最快捷的解决方案。

溶液:

string str1 = "First";
string str2 = "Second";
str1 += str2;
str2 = str1.Remove(str1.IndexOf(str2));
str1 = str1.Substring(str2.Length);

在不使用临时变量的情况下交换两个字符串变量:

string str1 = "aaac", str2 = "b";
Console.WriteLine(str1);
Console.WriteLine(str2);
str2 = str2 + str1;
str1 = str2.Substring(0,str2.Length - str1.Length);
str2 = str2.Substring(a.Length);
Console.WriteLine("<" + str1 + ">");
Console.WriteLine("<" + str2 + ">");
我认为在

C# 中没有办法做到这一点。在 Python 中,您可以同时设置两个变量,但在 C# 中没有办法。您可以创建一种方法来更透明地执行此操作。对于示例:

public static void ChangeValues(ref string str1, ref string str2)
{
    var temp = str2;
    str1 = str2;
    str2 = temp;
}

只需打电话

string str1 = "First";
string str2 = "Second";
ChangeValues(ref str1, ref str2);