2009-10-23 25 views

回答

16

看來這不是你真正的問題;如果要刪除 「%20」,你應該使用:

string test = "the%20matrix%20"; 
string clean = HttpUtility.UrlDecode(test); 

if (clean.Length > 2) // if you still want to strip last chars... 
    clean = clean.Substring(0, clean.Length - 3); 
+1

+1教給我一些我不知道的東西(UrlDecode),並且給出了最有可能成爲真正問題的解決方案。 – 2009-10-23 12:41:25

1

您需要檢查該字符串是否至少有3個字符長。

if (y.Length > 2) 
{ 
} 

正如其他人所說的Substring版本你想要的參數是startIndexlength

雖然你想用1或2個字符串做什麼?

3

你想

y.Substring(0, y.Length-4) 
2

如果你想刪除的最後三個字符,你需要你的子字符串方法的第一個參數是零。

+1

這個問題的答案是錯的,太 - 這是一個正確的問題,但他會得到一切,但最後一個字符... – tanascius 2009-10-23 12:34:26

4

正如dalovega說,你需要字符串的第一個參數爲0,第二長度 - 3.作爲一種替代方案:

if(y.Length >= 3) 
{ 
    y = y.Remove(y.Length - 3) 
} 
+0

,因爲他說:「任何字符串」這似乎很好地工作,不需要做UrlDecoding。 – 2009-10-23 12:44:31

+0

好點 - 很好看! – 2009-10-23 12:48:45

-1

string.Remove(string.LastIndexOf( 「stringTo」));

+1

這不完全是「任何」字符串。 – 2013-02-14 11:33:27

0

我從搜索中找到這篇文章,我正在尋找。我有一個使用字符串生成器構建的分隔符,並且想要刪除最後一個分隔符。

var delim = "{somedelimiter}"; 
var sb = new StringBuilder(); 
//concat the values into one string 
foreach (var val in values) 
{ 
    sb.Append(val); 
    sb.Append(delim); 
} 
var finalValue = sb.ToString(); 
finalValue = finalValue.Remove(finalValue.Length - delim.Length); 
相關問題