Подтвердить что ты не робот

С# - заменить символ ничем

У меня есть RichTextBox, который выглядит так:

TEXT  NEXT_TEXT  10.505   -174.994 0
TEXT  NEXT_TEXT  100.005  174.994  90 
TEXT  NEXT_TEXT  -10.000  -5.555   180
TEXT  NEXT_TEXT  -500.987 5.123    270
TEXT  NEXT_TEXT  987.123  1.000    180
TEXT  NEXT_TEXT  234.567  200.999  90

и я хочу заменить ". на ничего и поместить его в ListBox...

Итак, новый файл будет выглядеть так:

TEXT  NEXT_TEXT  10505   -174994 0
TEXT  NEXT_TEXT  100005  174994  90 
TEXT  NEXT_TEXT  -10000  -5555   180
TEXT  NEXT_TEXT  -500987 5123    270
TEXT  NEXT_TEXT  987123  1000    180
TEXT  NEXT_TEXT  234567  200999  90

Я думал о умножении значений на 1000, но я не знаю, как правильно выполнять сопоставление вычислений в строке.

Итак, следующая мысль заключалась в том, чтобы сделать это (ОДНАКО ЭТО НЕ РАБОТАЕТ):

  // Splits the lines in the rich text boxes
  string[] listOneLines = oneRichTextBox.Text.Split('\n');

  // Set the selection mode to multiple and extended.
  placementOneListBox.SelectionMode = SelectionMode.MultiExtended;

  // Shutdown the painting of the ListBox as items are added.
  placementOneListBox.BeginUpdate();

  // Display the items in the listbox.
  foreach (var item in listOneLines)
  {
      item.Replace(".","");
      placementOneListBox.Items.Add(item);
  }

  // Allow the ListBox to repaint and display the new items.
  placementOneListBox.EndUpdate();

  • Может кто-нибудь помочь мне выяснить, как заменить "."?
4b9b3361

Ответ 1

Строки неизменяемы, поэтому эта строка неверна:

item.Replace(".","");

Это возвращает строку после ее замены, но item не изменяется. Вам это нужно:

foreach (var item in listOneLines)
    placementOneListBox.Items.Add(item.Replace(".",""));

Ответ 2

Вместо:

item.Replace(".", "");

Попробуйте следующее:

item = item.Replace( ".", ""); (изменить: это была моя оригинальная идея, но это неправильно)

placementOneListBox.Items.Add(item.Replace(".", ""));

Ответ 3

string item2 = item.Replace(".", "");

Вам нужно использовать результат Replace, он не работает с самой строкой.

Ответ 4

Строки неизменяемы, поэтому

item.Replace(".","")

не изменяет элемент, а возвращает новую строку.

Вам нужно использовать:

placementOneListBox.Items.Add(item.Replace(".",""));

Изменить: и, как вы можете видеть из-за шквал одновременных ответов, многие из наших сверстников согласны!; -)

Ответ 5

Вместо "" используйте String.Empty. Таким образом, новый объект не создан.

Ответ 6

Замените замену:

item.Replace(".","");

с этим:

item = item.Replace(".","");

Ответ 7

Как насчет

//Разделяет строки в богатых текстовых полях string [] listOneLines = oneRichTextBox.Text.Replace( ".", ""). Split ('\n');