Mar*_*ell 10
它可能很诱人Split- 但这涉及到创建一个数组和许多单独的字符串.IMO,这里的最佳方法是找到第一个下划线,并取一个子串:
string b = s.Substring(0, s.IndexOf('_')); // assumes at least one _
Run Code Online (Sandbox Code Playgroud)
(编辑)
如果你这样做,你可以添加一些扩展方法:
public static string SubstringBefore(this string s, char value) {
if(string.IsNullOrEmpty(s)) return s;
int i = s.IndexOf(value);
return i > 0 ? s.Substring(0,i) : s;
}
public static string SubstringAfter(this string s, char value) {
if (string.IsNullOrEmpty(s)) return s;
int i = s.IndexOf(value);
return i >= 0 ? s.Substring(i + 1) : s;
}
Run Code Online (Sandbox Code Playgroud)
然后:
string s = "a_b_c";
string b = s.SubstringBefore('_'), c = s.SubstringAfter('_');
Run Code Online (Sandbox Code Playgroud)
YOUR_STRING.Split('_')[0]Run Code Online (Sandbox Code Playgroud)
事实上,Split方法返回一个字符串数组,这些字符串是在任何指定字符出现时拆分原始字符串而产生的,不包括执行拆分的字符.
如果s是字符串:
int idx = s.IndexOf('_');
if (idx >= 0)
firstPart = s.Substring(0,idx);
Run Code Online (Sandbox Code Playgroud)