C # - заменить символ ничем - PullRequest
24 голосов
/ 27 июля 2011

У меня есть 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();

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

Ответы [ 7 ]

35 голосов
/ 27 июля 2011

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

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

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

foreach (var item in listOneLines)
    placementOneListBox.Items.Add(item.Replace(".",""));
4 голосов
/ 25 июля 2012

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

3 голосов
/ 27 июля 2011
string item2 = item.Replace(".", "");

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

3 голосов
/ 27 июля 2011

Вместо:

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

Попробуйте это:

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

placementOneListBox.Items.Add(item.Replace(".", ""));
2 голосов
/ 27 июля 2011

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

item.Replace(".","")

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

Вам необходимо использовать:

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

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

0 голосов
/ 17 июля 2014

Как насчет

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

0 голосов
/ 27 июля 2011

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

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

с этим:

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