在字符串开头添加/删除字符的最有效方法

本文关键字:有效 方法 字符 删除 字符串 开头 添加 | 更新日期: 2023-09-27 18:25:13

我正在做一个小型的"可扩展"C#MVC项目,对数据库进行了相当多的读/写操作。

由此,我需要添加/删除输入字符串的第一个字母。


"删除"第一个字符非常容易(使用Substring方法)-使用类似的东西

String test = "HHello world";
test = test.Substring(1,test.Length-1);

"添加"一个角色看起来很混乱/尴尬:

String test = "ello World";
test = "H" + test;

鉴于这样做会有很多记录,这会是进行这些操作最有效的方式吗?

我还通过使用测试字符串是否以字母"T"开头,如果不是,则通过添加"T"

String test = "Hello World";
if(test[0]!='T')
{
    test = "T" + test;
}

并且想知道这是否适合这个

在字符串开头添加/删除字符的最有效方法

如果您有多个记录,并且需要在多个记录字段的开头添加一个字符,则可以使用索引为0的String.Inserthttp://msdn.microsoft.com/it-it/library/system.string.insert(v=vs.110).aspx

string yourString = yourString.Insert( 0, "C" );

这将与你在原始帖子中所写的内容大致相同,但由于你似乎更喜欢使用方法而不是运算符。。。

如果必须将一个字符多次附加到一个字符串中,那么最好使用StringBuilderhttp://msdn.microsoft.com/it-it/library/system.text.stringbuilder(v=vs.110).aspx

我认为两者都同样有效,因为两者都需要初始化一个新的string,因为string是不可变的。

在同一字符串上多次执行此操作时,添加时StringBuilder可能会派上用场。这将提高性能,而不是增加。

如果可能的话,您也可以选择将此操作移到数据库端。这也可能提高性能。

对于删除,我会使用remove命令,因为这不需要知道字符串的长度:

test = test.Remove(0, 1);

您也可以将字符串视为Add的数组并使用

test = test.Insert(0, "H");

如果您总是删除然后添加一个字符,则可以再次将字符串视为数组,只需替换该字符。

test = (test.ToCharArray()[0] = 'H').ToString();

但是,当对同一个字符串进行大量操作时,我会使用StringBuilder,创建成本更高,但对字符串的操作速度更快。

我倾向于使用这种方法。。。

String test = "ello World";
test = $"H{test}";