C# 从文件中读取文本并进行解析
我是.NET的新手 我希望我的程序从doc读取文本,保存数组中的每个字符串,然后使用正则表达式拆分每个单词。在控制台中,我看到: “系统” “字符串” 为什么我看不到文本文件中的单词 我试图创建一致性,所以我需要知道每个单词在文本中出现的次数以及每个单词所在的字符串数。为了做到这一点,我决定阅读每一行,但不是所有的文本 这是我的代码:C# 从文件中读取文本并进行解析,c#,regex,C#,Regex,我是.NET的新手 我希望我的程序从doc读取文本,保存数组中的每个字符串,然后使用正则表达式拆分每个单词。在控制台中,我看到: “系统” “字符串” 为什么我看不到文本文件中的单词 我试图创建一致性,所以我需要知道每个单词在文本中出现的次数以及每个单词所在的字符串数。为了做到这一点,我决定阅读每一行,但不是所有的文本 这是我的代码: string lines =File.ReadAllLines(path: @"C:\Users\Влад\Documents\Task1\Concorda
string lines =File.ReadAllLines(path: @"C:\Users\Влад\Documents\Task1\ConcordanceApplication\Text.txt").ToString();
string[] words = SplitWords(lines);
foreach (var word in words)
{
Console.WriteLine(word);
}
static string[] SplitWords(string s)
{
return Regex.Split(s, @"\W+");
}
问题是您正在第一行调用
string[].ToString()
File.ReadAllLines
返回一个数组;如果调用ToString()
,将得到文本System.String[]
,或者类似的内容
请尝试以下方法:
string text =File.ReadAllText(path: @"C:\Users\Влад\Documents\Task1\ConcordanceApplication\Text.txt");
string[] words = SplitWords(text);
问题是您正在第一行调用
string[].ToString()
File.ReadAllLines
返回一个数组;如果调用ToString()
,将得到文本System.String[]
,或者类似的内容
请尝试以下方法:
string text =File.ReadAllText(path: @"C:\Users\Влад\Documents\Task1\ConcordanceApplication\Text.txt");
string[] words = SplitWords(text);
给你:
internal class Program
{
private static void Main(string[] args)
{
string lines = File.ReadAllText(path: @"readme.txt");
string[] words = SplitWords(lines);
foreach (var word in words)
{
Console.WriteLine(word);
}
}
private static string[] SplitWords(string s)
{
return Regex.Split(s, @"\W+");
}
}
基本上使用ReadAllText而不是ReadAllLines。给你:
internal class Program
{
private static void Main(string[] args)
{
string lines = File.ReadAllText(path: @"readme.txt");
string[] words = SplitWords(lines);
foreach (var word in words)
{
Console.WriteLine(word);
}
}
private static string[] SplitWords(string s)
{
return Regex.Split(s, @"\W+");
}
}
基本上使用ReadAllText而不是ReadAllLines。'File.ReadAllLines'返回字符串数组而不是字符串。 工作解决方案:
string lines;
using (var strReader = new StreamReader(@"C:\Users\Влад\Documents\Task1\ConcordanceApplication\Text.txt"))
{
lines = strReader.ReadToEnd();
strReader.Close();
}
string[] words = SplitWords(lines);
foreach (var word in words)
Console.WriteLine(word);
“File.ReadAllLines”返回字符串数组而不是字符串。 工作解决方案:
string lines;
using (var strReader = new StreamReader(@"C:\Users\Влад\Documents\Task1\ConcordanceApplication\Text.txt"))
{
lines = strReader.ReadToEnd();
strReader.Close();
}
string[] words = SplitWords(lines);
foreach (var word in words)
Console.WriteLine(word);
你还没有告诉我们出了什么问题。它有什么作用?你期望它做什么?“它不起作用”不是一个问题陈述,也不是一个问题。另外,请改进你的标题。您当前的问题标题几乎可以应用于所有问题。您实际上没有告诉我们出了什么问题。它有什么作用?你期望它做什么?“它不起作用”不是一个问题陈述,也不是一个问题。另外,请改进你的标题。您当前的问题标题几乎可以应用于所有问题。