我想在遇到空格后丢弃字符串中的剩余字符(可以是任何字符)
例如。我希望字符串“10 1/2”变为“10”;
目前我正在使用Split,但这看起来有点矫枉过正:
string TrimMe = "10 1/2";
string[] cleaned = TrimMe.Split(new char[] {' '});
return string[0];
我觉得应该有一种更简单的方法。
答案 0 :(得分:11)
这应该有效:
Int32 indexOfSpace = TrimMe.IndexOf(' ');
if (indexOfSpace == 0)
return String.Empty; // space was first character
else if (indexOfSpace > 0)
return TrimMe.Substring(0, indexOfSpace);
else
return TrimMe; // no space found
答案 1 :(得分:11)
其他一些选择:
string result = Regex.Match(TrimMe, "^[^ ]+").Value;
// or
string result = new string(TrimMe.TakeWhile(c => c != ' ').ToArray());
然而,IMO开始时的内容更简单易读。
编辑:两个解决方案都将处理空字符串,如果没有找到空格则返回原始字符串,如果以空格开头则返回空字符串。
答案 2 :(得分:7)
为了便于阅读,我喜欢这个:
trimMe.Split(' ').First();
答案 3 :(得分:5)
与另一个答案相似,但更为简洁:
int indexSpace = trimMe.IndexOf(" ");
return trimMe.Substring(0, indexSpace >= 0 ? indexSpace : trimMe.Length);
答案 4 :(得分:1)
Split可能是您最优雅/最简单的解决方案。其他选项包括正则表达式和/或解析/词法分析。两者都会比您提供的示例更复杂。