Автоматическое редактирование строки для удаления пробелов C#

#c# #string

#c# #строка

Вопрос:

Когда я копирую строку из набора данных Excel в текстовое поле, строка содержит ОГРОМНЫЕ пробелы между каждым элементом в строке.

В настоящее время мне нужно if (textBox1.Text.Contains(" ") == true) определить пробелы в строке.

Что бы я использовал для удаления этих пробелов?

Дополнительный вопрос: Мне все еще нужен один пробел между каждым элементом в строке, как бы я добавил это и при этом удалил огромные пробелы?

     private void radioGenerateScript_CheckedChanged(object sender, EventArgs e)
    {
        hexData.Cells.Copy();
        textBox1.Clear();
        textBox1.Paste();
        if (textBox1.Text.Contains(" ") == true)
        {


        }
    }

    private void radioWriteScript_CheckedChanged(object sender, EventArgs e)
    {
        string waveForm = textBox1.Text;
        System.IO.File.WriteAllText("E:/Scripts/Test.us1", waveForm);

    }
  

Ответ №1:

Если вы хотите удалить все виды пробелов, используйте:

 textBox1.Text = Regex.Replace(textBox1.Text, @"s ", "");
  

s соответствует всем пробелам (пробелам, табуляции и новым строкам).

Комментарии:

1. Вам нужно добавить using System.Text.RegularExpressions;

2. Буквально только что сделал это, когда вы отправляли этот ответ: P.

Ответ №2:

 textBox1.Text = Regex.Replace(textBox1.Text, "  ", " ");
  

Кажется, у вас есть табуляции в качестве разделителей, поэтому лучше использовать следующее (как предложил Алексей):

 textBox1.Text = Regex.Replace(textBox1.Text, @"s ", " ");
  

Комментарии:

1. Похоже, это должно сработать. Но одна вещь, которую я заметил, — это когда я открываю текстовый файл, в который я писал. Пробел может быть удален одним нажатием кнопки delete. Как будто там есть один массивный символ.

2. 1. Идеальный вариант для использования регулярных выражений. Вы можете подумать, s нужно ли вам включать табуляции (что, похоже, имеет место в случае с @DeeWBee — «один массивный символ») и все другие странные символы «пробела», такие как неразрывный пробел.

Ответ №3:

 textBox1.Text = textBox1.Text.Replace(" ", "");
  

Если вы хотите сохранить некоторые пробелы, используйте Split и string.Join

 var words = textBox1.Text.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

textBox1.Text = string.Join(" ", words);
  

Комментарии:

1. Похоже, это должно сработать. Но одна вещь, которую я заметил, — это когда я открываю текстовый файл, в который я писал. Пробел может быть удален одним нажатием кнопки delete. Как будто там есть один массивный символ.