[英]C# - Replace a character with nothing
我有一个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();
字符串是不可变的,所以这一行是错误的:
item.Replace(".","");
这将在替换完成后返回字符串,但item
不变。 你需要这个:
foreach (var item in listOneLines)
placementOneListBox.Items.Add(item.Replace(".",""));
而不是“”使用String.Empty。 这样就没有创建新对象。
代替:
item.Replace(".", "");
尝试这个:
item = item.Replace(“。”,“”); (编辑:这是我最初的想法,但这是错的)
placementOneListBox.Items.Add(item.Replace(".", ""));
string item2 = item.Replace(".", "");
您需要使用Replace
的结果,它不对字符串本身进行操作。
字符串是不可变的,所以
item.Replace(".","")
不修改item,但返回一个新字符串。
你需要使用:
placementOneListBox.Items.Add(item.Replace(".",""));
编辑:正如你可以从同时响应中看到的那样,我们的许多同行都同意了! ;-)
怎么样
//拆分富文本框中的行string [] listOneLines = oneRichTextBox.Text.Replace(“。”,“”)。Split('\\ n');
更换替换件:
item.Replace(".","");
有了这个:
item = item.Replace(".","");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.