在C#字符串中丢弃空格后的字符

时间:2009-10-21 14:15:24

标签: c# .net string

我想在遇到空格后丢弃字符串中的剩余字符(可以是任何字符) 例如。我希望字符串“10 1/2”变为“10”;
目前我正在使用Split,但这看起来有点矫枉过正:

string TrimMe = "10 1/2";
string[] cleaned = TrimMe.Split(new char[] {' '});
return string[0];

我觉得应该有一种更简单的方法。

5 个答案:

答案 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可能是您最优雅/最简单的解决方案。其他选项包括正则表达式和/或解析/词法分析。两者都会比您提供的示例更复杂。