Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不使用特殊字符从文件中读取_C#_.net - Fatal编程技术网

C# 不使用特殊字符从文件中读取

C# 不使用特殊字符从文件中读取,c#,.net,C#,.net,我使用StreamReader打开一个文本文件并获取其内容。我只需要从文件中抓取文本,不带任何转义字符(\n、\r、\”,等等)。Google现在让我失望。有什么想法吗?你为什么不直接调用ReadToEnd,然后拆分字符串 // using statement and whatever code here var rawContent = sr.ReadToEnd(); var usefulContent = rawContent.Split(new []{ "\r\n", "\\" },

我使用StreamReader打开一个文本文件并获取其内容。我只需要从文件中抓取文本,不带任何转义字符(\n、\r、\”,等等)。Google现在让我失望。有什么想法吗?

你为什么不直接调用
ReadToEnd
,然后
拆分字符串

// using statement and whatever code here

var rawContent = sr.ReadToEnd();

var usefulContent = rawContent.Split(new []{ "\r\n", "\\" }, 
    StringSplitOptions.RemoveEmptyEntries);
注意:您需要调整
Split
方法中的分隔符;这只是一个示例

您也可以简单地
替换
不需要的字符:

// using statement and whatever code here

var rawContent = sr.ReadToEnd();

var usefulContent = rawContent
    .Replace("\r\n", "" )
    .Replace("\\", "");

为什么不直接调用
ReadToEnd
然后
Split
字符串呢

// using statement and whatever code here

var rawContent = sr.ReadToEnd();

var usefulContent = rawContent.Split(new []{ "\r\n", "\\" }, 
    StringSplitOptions.RemoveEmptyEntries);
注意:您需要调整
Split
方法中的分隔符;这只是一个示例

您也可以简单地
替换
不需要的字符:

// using statement and whatever code here

var rawContent = sr.ReadToEnd();

var usefulContent = rawContent
    .Replace("\r\n", "" )
    .Replace("\\", "");

从文件中读取的文本中没有转义字符。转义字符在编写字符串文字时使用,例如在程序代码中。我假定您的意思是要用纯空格替换任何写空格字符

您可以使用正则表达式匹配空白字符,并将其替换为空格。使用
文件更容易。ReadAllText
从文件中读取文本:

string text = Regex.Replace(File.ReadAllText(fileName), @"[\r\n\t ]+", " ");

从文件中读取的文本中没有转义字符。转义字符在编写字符串文字时使用,例如在程序代码中。我假定您的意思是要用纯空格替换任何写空格字符

您可以使用正则表达式匹配空白字符,并将其替换为空格。使用
文件更容易。ReadAllText
从文件中读取文本:

string text = Regex.Replace(File.ReadAllText(fileName), @"[\r\n\t ]+", " ");

如果您试图在流式处理时执行此操作,请在while循环中调用StreamReader.Read(),并逐个测试字符


如果您能够将整个文件内容捕获到一个字符串中,请使用正则表达式去除不需要的字符。请查看RegexHero:

如果您试图在流式处理时执行此操作,请在while循环中调用StreamReader.Read(),并逐个测试字符


如果您能够将整个文件内容抓取到一个字符串中,请使用正则表达式去除不需要的字符。请检查RegexHero:

假设您已在字符串中读取整个文件

for (int i = 0; i < s.Length; i++)
{
   if (char.IsLetterOrDigit(s, i)) // or if (!char.IsWhiteSpace(s, i))
   {
      // append to StringBuilder
   }
}
for(int i=0;i

如果IsleterOrdGit或IsWhiteSpace不适合您的需要,您可以创建自己的方法并调用它。

假设您已在字符串s中读取整个文件

for (int i = 0; i < s.Length; i++)
{
   if (char.IsLetterOrDigit(s, i)) // or if (!char.IsWhiteSpace(s, i))
   {
      // append to StringBuilder
   }
}
for(int i=0;i

如果IsleterOrdGit或IsWhiteSpace不适合您的需要,您可以创建自己的方法并调用它。

您可以使用通用函数跳过所有不需要的字符:

public string SkipChars(string InputString, char[] CharsToSkip)
{
  string result = InputString;
  foreach (var chr in CharsToSkip)
  {
    result = result.Replace(chr.ToString(), "");
  }

  return result;
}
用法:

string test = "one\ntwo\tthree";

MessageBox.Show(SkipChars(test, new char[] { '\n', '\t' }));

您可以使用通用函数跳过所有不需要的字符:

public string SkipChars(string InputString, char[] CharsToSkip)
{
  string result = InputString;
  foreach (var chr in CharsToSkip)
  {
    result = result.Replace(chr.ToString(), "");
  }

  return result;
}
用法:

string test = "one\ntwo\tthree";

MessageBox.Show(SkipChars(test, new char[] { '\n', '\t' }));