我正在做一个小型的“可扩展”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 :(得分:2)
如果您有多条记录,并且您需要在开头添加一个字符,那么您可以使用索引为http://msdn.microsoft.com/it-it/library/system.string.insert(v=vs.110).aspx的String.Insert
string yourString=yourString.Insert(0,'C');
这几乎与您在原帖中所写的内容相同,但因为您似乎更喜欢使用方法而不是操作符...
如果你需要多次追加一个字符到一个字符串,那么你最好使用StringBuilder
http://msdn.microsoft.com/it-it/library/system.text.stringbuilder(v=vs.110).aspx
答案 1 :(得分:1)
我认为两者都同样有效,因为两者都需要初始化新的string
,因为string
是不可变的。
在多次对同一个字符串执行此操作时,StringBuilder
可能会在添加时派上用场。这将提高性能,而不是添加。
如果可能,您也可以选择将此操作移至数据库端。这也可能会提高性能。
答案 2 :(得分:0)
要删除我会使用remove命令,因为这并不需要知道字符串的长度:
test = test.Remove(0, 1);
您还可以将字符串视为Add和use
的数组test = test.Insert(0, "H");
如果你总是删除然后添加一个字符,你可以再次将字符串视为一个数组,只需替换该字符。
test = (test.ToCharArray()[0] = 'H').ToString();
当对同一个字符串进行大量操作时,我会使用StringBuilder
,但是在字符串上创建更快的操作会更加昂贵。