我的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();
答案 0 :(得分:35)
字符串是不可变的,所以这一行是错误的:
item.Replace(".","");
在替换完成后返回字符串,但item
保持不变。你需要这个:
foreach (var item in listOneLines)
placementOneListBox.Items.Add(item.Replace(".",""));
答案 1 :(得分:4)
而不是“”使用String.Empty。 这样就没有新的对象了。
答案 2 :(得分:3)
而不是:
item.Replace(".", "");
试试这个:
item = item.Replace(“。”,“”); (编辑:这是我最初的想法,但这是错误的)
placementOneListBox.Items.Add(item.Replace(".", ""));
答案 3 :(得分:3)
string item2 = item.Replace(".", "");
您需要使用Replace
的结果,它不会对字符串本身进行操作。
答案 4 :(得分:2)
字符串是不可变的,所以
item.Replace(".","")
不会修改项目,但会返回一个新字符串。
您需要使用:
placementOneListBox.Items.Add(item.Replace(".",""));
编辑:正如您从同时响应中看到的那样,我们的许多同行都同意了! ; - )
答案 5 :(得分:0)
替换你的替换:
item.Replace(".","");
用这个:
item = item.Replace(".","");
答案 6 :(得分:0)
怎么样
//拆分富文本框中的行string [] listOneLines = one RichTextBox.Text.Replace(“。”,“”)。Split('\ n');