【问题标题】:extract substring after the first underscore在第一个下划线之后提取子字符串
【发布时间】:2014-03-23 01:32:14
【问题描述】:

我需要删除文件名中的下划线及其前面的所有字符。文件名的语法如下:

<username>_<NameofFile>_<InstructorName>_<ClassName>.xls  

我想保留所有内容,但 &lt;username&gt;_ 部分除外。
我尝试使用.Split 如下:

string newfilename = file.Split('_')[1];

但这放弃了一切,只保留了&lt;NameOfFile&gt;
这是如何实现的?

【问题讨论】:

  • 你的用户名可以有下划线吗?

标签: c# split substring


【解决方案1】:
string newfilename = file.Substring(file.IndexOf('_') + 1);

【讨论】:

  • 我认为这是你最好的选择。你也可以用String.Remove(0, i + 1) 来做,但这会比String.Substring() 慢。
【解决方案2】:

Split 方法有an overload,允许您指定要拆分的最大子字符串数。

string newfilename = file.Split(new [] { '_' }, 2).Last();

另外,我建议使用Last(),而不是[1],以便在没有任何下划线时获得完整的字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2021-08-31
    • 1970-01-01
    • 2022-06-15
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多