簡體   English   中英

在字符串開頭添加/刪除字符的最有效方法?

[英]Most efficient way of adding/removing a character to beginning of string?

我當時正在做一個小型的“可擴展” 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;
}

並想知道這是否適合

我認為兩者都是同等有效的,因為string都是不可變的,因此都需要初始化新的string

當對同一字符串多次執行此操作時,添加時, StringBuilder可能會派上用場。 與添加相比,這將提高性能。

如果可能,您還可以選擇將此操作移至數據庫端。 這也可能會提高性能。

如果您有多個記錄,並且需要在每個記錄字段的開頭添加一個字符,則可以使用String.Insert ,索引為0 http://msdn.microsoft.com/it-it/library/ system.string.insert(v = vs.110)的.aspx

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

這幾乎與您在原始帖子中寫的內容一樣,但是由於您似乎更喜歡使用Method而不是運算符...

如果必須多次向單個字符串附加一個字符,則最好使用StringBuilder http://msdn.microsoft.com/it-it/library/system.text.stringbuilder(v=vs.110 )的.aspx

對於刪除,我將使用remove命令,因為這不需要知道字符串的長度:

test = test.Remove(0, 1);

您也可以將字符串視為添加和使用的數組

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

如果您總是要刪除然后再添加一個字符,則可以將字符串再次視為數組,而只需替換字符即可。

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

當對同一字符串進行大量操作時,我會使用StringBuilder雖然創建起來比較昂貴,但是對字符串的操作更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM