2010-08-19 57 views
10

如果以「,」結尾,我想修剪結尾的字符串。這是一個逗號和空間。我試過TrimEnd(', '),但這是行不通的。只有當字符串以這種方式結束時,才能使用.Remove刪除最後兩個字符。我該怎麼做?TrimEnd()不起作用

+6

字符串是不可改變的。所有字符串方法都不會更改字符串,但會返回新字符串。 – codymanix 2010-08-19 11:53:40

+0

phil,「Bar」,「Bar」,「Bar」和「Bar」會出現什麼情況? – 2010-08-19 13:36:02

回答

24
string txt = "testing, "; 
txt = txt.TrimEnd(',',' '); // txt = "testing" 

它使用the overloadTrimEnd(params char[] trimChars) 。您可以指定一個或多個字符,這些字符將形成要刪除的字符集。在這種情況下逗號和空格。

+0

好,在lable.trimend上爲我工作,但你能解釋它是如何工作的,txt.TrimEnd(',','')與txt.TrimEnd(',') – 2016-01-28 11:28:30

+1

編輯有什麼區別。 'TrimEnd(',')'不會刪除空格。 – 2016-01-28 11:33:01

6

試試這個:

string someText = "some text, "; 
char[] charsToTrim = { ',', ' ' }; 
someText = someText.TrimEnd(charsToTrim); 

爲我工作。

8

這應該工作:

string s = "Bar, "; 

if (s.EndsWith(", ")) 
    s = s.Substring(0, s.Length - 2); 

編輯

試想想它,這將是一個不錯的擴展方法:

public static String RemoveSuffix(this string value, string suffix) 
{ 
    if (value.EndsWith(suffix)) 
     return value.Substring(0, value.Length - suffix.Length); 

    return value; 
} 
+0

原則上這是迄今爲止唯一正確的答案,但有一個錯誤:您需要使用'source.Substring(0,source.Length - suffix.Length)'或'source.Remove(source.Length - suffix。長度)'等 – LukeH 2010-08-19 12:01:47

+0

@LukeH:哎呀!好,趕快,謝謝! – 2010-08-19 12:20:21

+0

@LukeH:你的問題很直接,這確實是OP要求的。但我無法想象「酒吧」,「酒吧」和「酒吧」不應該被修剪。 – 2010-08-19 12:28:31

-1

"value, ".Trim().TrimEnd(",")也應該工作。

-1
if (model != null && ModelState.IsValid) 
       { 
        var categoryCreate = new Categories 
        { 
         CategoryName = model.CategoryName.TrimStart().TrimEnd(), 
         Description = model.Description.TrimStart().TrimEnd() 
        }; 
        _CategoriesService.Create(categoryCreate); 
       } 

TrimStart()。TrimEnd()==左修剪及修剪

+0

此代碼不會修剪','。另外,爲什麼你發佈了一個已經有了可接受答案的5歲以上問題的答案? – 2018-02-26 16:23:40