我正在制作一个小型的C#应用程序,我有一个小问题。
我有一个纯文本的.xml,我只需要第4行。
string filename = "file.xml";
if (File.Exists(filename))
{
string[] lines = File.ReadAllLines(filename);
textBox1.Text += (lines[4]);
}
直到现在一切都很好,我唯一的问题是我必须从第4行删除一些单词和符号。
我的坏话和符号:
word 1
:
'
,
我一直在寻找谷歌然而我找不到任何C#的东西。 找到了VB的代码,但我是新手,我真的不知道如何转换它并让它工作。
Dim crlf$, badChars$, badChars2$, i, tt$
crlf$ = Chr(13) & Chr(10)
badChars$ = "\/:*?""<>|" ' For Testing, no spaces
badChars2$ = "\ / : * ? "" < > |" ' For Display, has spaces
' Check for bad characters
For i = 1 To Len(tt$)
If InStr(badChars$, Mid(tt$, i, 1)) <> 0 Then
temp = MsgBox("A directory name may not contain any of the following" _
& crlf$ & crlf$ & " " & badChars2$, _
vbOKOnly + vbCritical, _
"Bad Characters")
Exit Sub
End If
Next i
谢谢。
固定:)
textBox1.Text += (lines[4]
.Replace("Word 1", String.Empty)
.Replace(":", String.Empty)
.Replace("'", String.Empty)
.Replace(",", String.Empty));
答案 0 :(得分:2)
你可以用任何东西替换它们:
textBox1.Text += lines[4].Replace("word 1 ", string.Empty)
.Replace(":", string.Empty)
.Replace("'", string.Empty)
.Replace(",", string.Empty);
或者也许创建一个你想删除的表达式数组,并将它们全部替换掉。
string[] wordsToBeRemoved = { "word 1", ":", "'", "," };
string result = lines[4];
foreach (string toBeRemoved in wordsToBeRemoved) {
result = result.Replace(toBeRemoved, string.Empty);
}
textBox1.Text += result;
答案 1 :(得分:1)
您可以使用String.Replace
替换它们:
textBox1.Text += (lines[4]
.Replace("Word 1", String.Empty)
.Replace(":", String.Empty)
.Replace("'", String.Empty)
.Replace(",", String.Empty));
答案 2 :(得分:0)
Guys给出了很好的解决方案,我只想添加另一个快速(使用StringBuilder
)和方便(使用Extension方法语法和params
作为值)解决方案
public static string RemoveStrings(this string str, params string[] strsToRemove)
{
var builder = new StringBuilder(str);
strsToRemove.ToList().ForEach(v => builder.Replace(v, ""));
return builder.ToString();
}
现在你可以
string[] lines = File.ReadAllLines(filename);
textBox1.Text += lines[4].RemoveStrings("word 1", ":", "'", ",");