将一定数量的字符从一个字符串附加到另一个字符串

本文关键字:字符串 一个 另一个 字符 | 更新日期: 2023-09-27 17:57:42

这是一个非常基本的问题,但问题是:C#中是否有一个字符串方法可以将一个字符串中的多个字符添加到另一个字符串?在C++std::string类中,有一个append方法,它有三个参数:source string、indexStart和offset。

string a = "foo";
string b = "bar";
a.append(b, 0, 2); // a is now "fooba";

在C#中,我也尝试过StringBuilder,但没有成功。

将一定数量的字符从一个字符串附加到另一个字符串

.NET中的字符串是不可变的。一旦创建了一个字符串,你就不能修改它。但是,你可以通过串联创建一个新的字符串,并将其重新分配给同一个变量:

string a = "foo";
string b = "bar";
a = a + b.Substring(0, 2); // a is now "fooba";
string a = "foo";
string b = "bar";
var sb = new StringBuilder();
sb.append(a);
sb.append(b.SubString(0,2));
string res = sb.ToString(); // res = "fooba"

如果你有冒险精神,你也可以写一个扩展方法:

public static class MyStringExtensions
{
    public static string Append(this string original, string textToAdd, int length)
    {
        if (length <= 0)
        {
            return original;
        }
        var len = (textToAdd.Length < length)
                      ? textToAdd.Length
                      : length;
        return original + textToAdd.Substring(0, len);
    }
}

然后使用它,你会这样做:

string a = "foo".Append("bar", 2);

string a = "foo";
string b = "bar";
string c = a.Append(b, 2);

这还有一个很好的优点,即允许在中心位置进行错误/异常处理。

尝试进行

 string aa = "foo";
            string bb = "bad";
            bb= string.Concat(aa, bb.Substring(0, 2));