簡體   English   中英

弦線裝飾。 從末尾刪除最后一個字符

[英]String trim. to remove last characters from the end

有一點點問題。 我有這些弦

[14]: "Care_CAR_3RD_DAY_201309177438417"
[15]: "Care_201309177438417"
[16]: "New_Care_201309177438417"
[17]: "SMS_New_Care_20130917"

這是每天生成的文件列表,我想在末尾刪除編號,以便能夠將每個文件名與db中的記錄進行比較以執行特定操作。 此外,末尾的數字不一定總是相同的大小。 結果將是

[14]: "Care_CAR_3RD_DAY"
[15]: "Care"
[16]: "New_Care"
[17]: "SMS_New_Care"
string test = "Care_CAR_3RD_DAY_201309177438417";
test = test.Remove(test.LastIndexOf('_'));

如果不確定是否有“ _”,則可以進行檢查:

test = test.IndexOf('_') > -1 ? test.Remove(test.LastIndexOf('_')) : test;

盡管jyparask回答是有效的,但如果輸入類似於Care_CAR_3RD_DAY201309177438417 ,它將失敗。

安全的方法是

string test = "Care_CAR_3RD_DAY_201309177438417";
test = test.TrimEnd(new char[]{'_','0','1','2','3','4','5','6','7','8','9'});

//output Care_CAR_3RD_DAY
test = "Care_CAR_3RD_DAY201309177438417";
test = test.TrimEnd(new char[]{'_','0','1','2','3','4','5','6','7','8','9'});

//output Care_CAR_3RD_DAY

您可以使用正則表達式。

  var newString = Regex.Replace(inputString, @"\d*", string.empty);


Input: Care_CAR_3RD_DAY_201309177438417
Result: Care_CAR_3RD_DAY_

這就是我設法解決的方法

fname.Replace(fname.Split(' '). Last( ),“”)。TrimEnd(' ')

暫無
暫無

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

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