0

少し問題があります。私はこれらの文字列を持っています

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

これは毎日生成されるファイルのリストです。各ファイル名をデータベース内のレコードと比較して特定のアクションを実行できるように、最後の数字を削除したいと思います。また、末尾の数字は必ずしも同じサイズではありません。結果は次のようになります

[14]: "Care_CAR_3RD_DAY"
[15]: "Care"
[16]: "New_Care"
[17]: "SMS_New_Care"
4

4 に答える 4

7
string test = "Care_CAR_3RD_DAY_201309177438417";
test = test.Remove(test.LastIndexOf('_'));

「_」があるかどうかわからない場合は、確認できます。

test = test.IndexOf('_') > -1 ? test.Remove(test.LastIndexOf('_')) : test;
于 2013-09-17T08:49:11.473 に答える
1

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
于 2013-09-17T08:56:27.230 に答える
0

これは私がそれを解決することができた方法です

fname.Replace(fname.Split(' ').Last(),"").TrimEnd(' ')

于 2013-09-17T11:11:49.513 に答える