【发布时间】:2012-01-29 09:03:47
【问题描述】:
例如我们有这个字符串:
- hello_my name_is_bob
只想得到字符串的“我的名字”部分,我怎么能简单地用子字符串得到这个?
此外,示例中的格式始终相同,因此我只需要检索第一个下划线之后第二个下划线之前的内容。
【问题讨论】:
标签: c# string substring delimiter
例如我们有这个字符串:
只想得到字符串的“我的名字”部分,我怎么能简单地用子字符串得到这个?
此外,示例中的格式始终相同,因此我只需要检索第一个下划线之后第二个下划线之前的内容。
【问题讨论】:
标签: c# string substring delimiter
string.Split 可以做到这一点,无需进入Substring:
var parts = "hello_my name_is_bob".Split('_');
string name = parts[1] // == "my name";
或者,在一个衬里(虽然我觉得这不太可读):
string name = "hello_my name_is_bob".Split('_')[1];
【讨论】:
"hello_my name_is_bob".Split('_').Skip(1).First();
【讨论】:
如果您确定有两个下划线,请使用以下代码:
var pos = str.IndexOf('_');
var last = str.IndexOf('_', pos+1);
var res = str.Substring(pos+1, last-pos-1);
如果下划线的数量少于两个,这将失败。
【讨论】: