从字符串中删除单个空格

时间:2013-09-12 21:23:11

标签: c#

"How do I do this?              "

假设我有这个字符串。如何从末尾删除一个空格?下面显示的代码给出了一个错误,指出计数超出范围。

string s = "How do I do this?              ";
s = s.Remove(s.Length, 1);

6 个答案:

答案 0 :(得分:3)

你必须改为使用它:

string s = "How do I do this?              ";
s = s.Remove(s.Length-1, 1);

如上所述here

  

Remove(Int32)返回一个新字符串,其中包含当前的所有字符   例如,从指定的位置开始并继续通过   最后一个位置,已被删除。

在数组中,位置范围从0到Length-1,因此编译器错误。

答案 1 :(得分:2)

C#中的索引是从零开始的。

s = s.Remove(s.Length - 1, 1);

答案 2 :(得分:1)

只需从第一个字符做一个子字符串(字符串中字符为0)并获得字符数减去1字符串长度

s = s.Substring(0, s.Length - 1);

答案 3 :(得分:1)

这有点安全,以防最后一个字符不是空格

string s = "How do I do this?              ";
s = Regex.Replace(s, @" $", "")

答案 4 :(得分:0)

你必须写一些

的内容
string s = "How do I do this?
s = s.Remove(s.Length-1, 1);

原因是在C#中引用数组中的索引时,第一个元素始终位于位置0并且结束于长度 - 1.长度通常告诉您字符串有多长但不映射到实际的数组索引。

答案 5 :(得分:0)

另一种方法是:

string s = "How do I do this?              ";
s=s.SubString(0,s.Length-1);

其他:

如果您想对最后一个字符作为空格或其他任何内容进行额外检查,您可以这样做;

    string s = "How do I do this?              a";//Just for example,i've added a 'a' at the end.
    int index = s.Length - 1;//Get last Char index.
    if (index > 0)//If index exists.
    {
        if (s[index] == ' ')//If the character at 'index' is a space.
        {
            MessageBox.Show("Its a space.");
        }
        else if (char.IsLetter(s[index]))//If the character at 'index' is a letter.
        {
            MessageBox.Show("Its a letter.");
        }
        else if(char.IsDigit(s[index]))//If the character at 'index' is a digit.
        {
            MessageBox.Show("Its a digit.");
        }
    }
  

这会给你一个MessageBox,上面写着“它是一封信”。

如果你想创建一个等于no的字符串,还有一件事可能会有所帮助。每个单词之间的空格,然后你可以尝试这个。

    string s = "How do I do this?              ";
    string[] words = s.Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries);//Break the string into individual words.
    StringBuilder sb = new StringBuilder();
    foreach (string word in words)//Iterate through each word.
    {
        sb.Append(word);//Append the word.
        sb.Append(" ");//Append a single space.
    }
    MessageBox.Show(sb.ToString());//Resultant string 'sb.ToString()'.
  

这会给你“我该怎么做?”(单词之间的空格相等)。