在第一个下划线之后提取子字符串
Posted
技术标签:
【中文标题】在第一个下划线之后提取子字符串【英文标题】:extract substring after the first underscore 【发布时间】:2014-03-23 01:32:14 【问题描述】:我需要删除文件名中的下划线及其前面的所有字符。文件名的语法如下:
<username>_<NameofFile>_<InstructorName>_<ClassName>.xls
我想保留所有内容,但 <username>_
部分除外。
我尝试使用.Split
如下:
string newfilename = file.Split('_')[1];
但这放弃了一切,只保留了<NameOfFile>
。
这是如何实现的?
【问题讨论】:
你的用户名可以有下划线吗? 【参考方案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]
,以便在没有任何下划线时获得完整的字符串。
【讨论】:
以上是关于在第一个下划线之后提取子字符串的主要内容,如果未能解决你的问题,请参考以下文章