如何在字符的第一个实例处截断字符串?

时间:2012-07-24 18:11:11

标签: c# .net string

我目前有一个字符串1_0707201206050239,我想截断右边的所有字符,包括_字符。

问题在于左侧的字符因用户输入而异,因此字符串的长度始终不同。 _的右侧代表日期和时间(例如07-07-2012 6:05:02.390AM),长度可以在17-14个字符之间变化。

所以我想知道在检测到_之前是否有截断的方法?

4 个答案:

答案 0 :(得分:8)

text.Substring(0, text.IndexOf('_'));

答案 1 :(得分:1)

您也可以使用:

String.Substring(0, String.indexOf('_'));

答案 2 :(得分:1)

如何使用String.Remove

theString = theString.Remove(sourceString.IndexOf('_'), 1);

答案 3 :(得分:0)

如何处理呢?如果字符串中没有出现字符,它将返回整个字符串:

static class StringExtensions
{
    internal static string TruncateAtFirst(this string str, params char [] ch)
    {
        int i = str.IndexOfAny(ch);
        return (i < 0 ? str : str.Substring(0, i));
    }
}

"abcdefg".TruncateAtFirst('c')      // "ab" 
"abcdefg".TruncateAtFirst('e', 'b') // "a"
"abcdefg".TruncateAtFirst('z')      // "abcdefg"
       "".TruncateAtFirst('z')      // ""

也易于处理字符串。