Dor*_*eka 2 c# desktop-application
我将使用我的计算机读取文件
StreamReader sr = new StreamReader(FileName);
string str = sr.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
在这里我得到一些非法字符,如/ n,/ r和其他一些.
我想用空字符替换非法字符.我尝试制作一个角色阵列,但我无法删除那些,所以任何人都可以帮助我
您可以使用以下String.Replace方法:
string str = sr.ReadToEnd().Replace("\r", "").Replace("\n", "");
Run Code Online (Sandbox Code Playgroud)
但是,如果字符串很长并且你有很长的非法字符列表,那么这不是一个好主意,因为每次调用Replace都会创建一个新的实例String.更好的选择是使用Linq过滤掉非法字符:
char[] illegalChars = new[] { '\r', '\n' }; // add other illegal chars if needed
char[] chars = sr.ReadToEnd().Where(c => !illegalChars.Contains(c)).ToArray();
string str = new String(chars);
Run Code Online (Sandbox Code Playgroud)
然而,调用Contains增加了开销,直接针对每个非法字符进行测试更快:
char[] chars = sr.ReadToEnd().Where(c => c != '\r' && c != '\n').ToArray();
string str = new String(chars);
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这是一个更快的版本:
StringBuilder sb = new StringBuilder();
foreach(char c in sr.ReadToEnd())
{
if (c != '\r' && c != '\n')
sb.Append(c);
}
string str = sb.ToString();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1816 次 |
| 最近记录: |