2011-06-24 189 views

回答

33

可以做的情況下:

 string str = "Hello Marco !"; 
     str = str.Substring(0, str.Length - 2); 
+0

「子串」是無效的函數名稱。它應該是「子串」。 – Alexander

+8

@Alexander我不知道你在說什麼語言,但在.net c#中,這是一種有效的方法。這也是適當的情況。 –

+0

我非常抱歉 - 我沒有注意到c#已被提及。我只是在尋找方法簽名,並發現這一個:) – Alexander

6

什麼

string s = "Hello Marco !"; 
s = s.Substring(0, s.Length - 2); 
+1

不適用於太短的字符串嗎? :P –

+5

@阿門 - 這也不是問題,是嗎? ;) –

1

試試這個:

var s = "Hello Marco !"; 

var corrected = s.Substring(0, s.Length - 2); 
1
string s = "Hello Marco !"; 
s = s.Remove(s.length - 2, 2); 
+0

這隻會得到最後兩個字符。 – Yuck

+0

@Yuck,是的,我正在去除和習慣做子字符串。 – bdparrish

2

你檢查MSDN文檔(或智能感知)? String.Substring method怎麼樣?

您可以使用Length property獲得長度,從中減去2,並從開頭將子字符串返回到結尾的2個字符。 例如:

string str = "Hello Marco !"; 
str = str.Substring(0, str.Length - 2); 
23
s = s.Substring(0, Math.Max(0, s.Length-2)) 

到包括其中長度小於2

3

我將修剪爲不需要的字符的結束:

s = s.TrimEnd(' ', '!'); 

確保它即使有更多空間也能正常工作。或者,如果你想確保它更好的作品始終,由於輸入的文本似乎來自用戶:

Regex r = new Regex(@"(?'purged'(\w|\s)+\w)"); 
Match m = r.Match("Hello Marco !!"); 
if (m.Success) 
{ 
    string result = m.Groups["purged"].Value; 
} 

有了這個,你是安全的。基於最後兩個字符必須被移除的事實進行清除太弱。

2

如果它是未知數量的字符串,你可以通過做 修剪掉最後一個字符s = s.TrimEnd('','!')。Trim();

你有沒有考慮過使用正則表達式?如果你只想允許字母數字字符,你可以使用正則表達式來替換符號,如果不是!你得到%?

相關問題