2013-10-17 43 views
1

從字符串的開頭刪除幾個字符的最佳方法是什麼?從字符串中刪除前面的字符?

sName = "IMG: Testing again" 
sName = "TXT: This is amazing" 

所以刪除IMG:和TXT ..等等

所以我可以有這個?

sName = "Testing again" 
sName = "This is amazing" 
+0

你有什麼試過? [如何提問](http://stackoverflow.com/questions/how-to-ask) – crashmstr

+0

你有一個要刪除的前綴列表? – Steve

+0

你真的應該嘗試使用谷歌搜索它,這種問題之前已被問過一百萬次,不應再次在這裏問。 –

回答

1

那麼,如果它總是四個字符,你可以做。 sName = sName.Substring(5)

+0

是否會刪除前三個字符並保留其餘? – user2800287

+0

前四個字符從零開始,但是是 –

+1

這會刪除前3個字符,而不是前4個。 –

0

假設你一直使用的格式{TYPE}: {Text},並且希望{Text},使用此:

int index = sName.IndexOf(':') + 2; // two: one for the colon and one for the space 
sName = sName.Substring(index); 

這可以,當然,被放入一個線;爲了清晰起見,我將它分成兩部分。

您也可以在一般的情況下擴展方法:

public static string SubstringAfter(this string str, string sequence) 
{ 
    int index = str.IndexOf(sequence); 
    if (index > -1) 
    { 
     return str.Substring(str.IndexOf(sequence) + sequence.Length); 
    } 
    return str; 
} 

這可以讓你做到這一點:

sName = sName.SubstringAfter(": "); 
0
sName = sName.Remove(0,5); //simple but not perfect way 

編輯:

sName= sName.Split(':')[1]; //For splitting by ':' 
sName = sName.Remove(0,1); //For the space, or use sName.Trim(); 
+0

這隻會刪除前3個字符,在給出用戶想要刪除前5個字符(包括空格)的示例中。 –

+0

我編輯它,根據您的評論;) – Krekkon

1

我個人像一個簡單的regular expression這樣的任務。

var result = Regex.Replace(input, @"^[A-Z]+:\s*", ""); 

這比什麼它會刪除其它提示的方法略有不同的語義,所以這裏的比賽進行了說明(也指regular expression quick reference)。

^   # anchor match to start of input 
[A-Z]+ # match one or more capital English-alphabet characters 
:   # match a colon 
\s*  # match zero or more spaces 

因此這種做法也符合輸入類似「HELLOWORLDILOVEYOU:弗雷德說」和「TXT:     武漢理工大學?」甩掉多餘的前導空格。

+0

@zimdanen除了沒有 - [我沒有解決nqueens](http://www.perlmonks.org/?node_id=297616);) – user2864740

+0

yikes,看起來很有趣。 – zimdanen

+1

@zimdanen我甚至無法理解作者是如何開始瘋狂的!我同意正則表達式可以被過度使用,並且我已經看到了一些糟糕的錯誤。如果1)沒有更合適的現有解析工具,我通常會感到安全; 2)我可以將正則表達式構造放在一行上; 3)我可以在第二天瞭解它,而無需參考筆記。 – user2864740

0

我建議你去拆分,如果它的固定格式。看代碼。分裂後的第一個索引將有你的物品。

var sName = sName.Split(new char[] {':'})[1].Trim(); 
0

你可以使用

sName = sName.SubString(4, sname.Length) 

它將從第四位到字符串的最後一個位置的子字符串。