我们说我的文字文件类似于:
C#[注2](发音为see sharp)是一种多范式编程 语言包含强烈的打字,命令式,陈述性, 功能,通用,面向对象(基于类),和 面向组件的编程学科。它是由开发的 Microsoft在其.NET计划中,后来被批准为标准 由Ecma(ECMA-334)和ISO(ISO / IEC 23270:2006)。 C#就是其中之一 为公共语言基础结构设计的编程语言。 C#旨在成为一个简单,现代,通用的, 面向对象的编程语言。[7]其开发团队领导 作者:Anders Hejlsberg。最新版本是C#6.0,它是 于2015年7月20日发布。[8]
如何在本文中找到最长的句子?我应该使用string[] lines = File.ReadAllLines(file);
阅读吗?
编辑:你说是不可能的。但这是我老师给的任务..
好的,如何使用此文本文件执行此操作?:
短信或短信是撰写和发送的行为 两个或多个移动电话之间的简短电子信息,或 通过电话网络固定或携带的设备。这个词最初 提到使用短消息服务(SMS)发送的消息。它 已经发展到包含包含图像,视频和声音的消息 内容(称为MMS消息)。文本消息的发送者是已知的 作为一个短信,而服务本身有不同的口语 取决于地区。它可以简单地称为文本 北美,英国,澳大利亚,新西兰和美国 菲律宾,欧洲大部分地区的短信,以及中国的彩信或短信 中东,非洲和亚洲。
答案 0 :(得分:1)
如果你真的想用句子分割英文文本(而不仅仅是做家庭作业),我建议使用一种开源自然语言处理工具,例如SharpNLP这是一个C# Java OpenNLP工具的端口。我已从GitHub下载了此源代码,并在其def skate(y, t, params):
phi, omega = y
g, R = params
derivs = [omega, -(g/R)*sin(phi)]
return derivs
项目中创建了以下示例。该程序输出6个句子,最长的句子实际上是第一个句子。
Test
答案 1 :(得分:-2)
修改:编辑完问题后。我将采用Guffa's回答拆分字符串,并采用最长的字符串。
string lines;
try
{ // Open the text file using a stream reader.
using (StreamReader sr = new StreamReader("TestFile.txt"))
lines = sr.ReadToEnd();
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
List<string> sentences = Regex.Split("", @"(?<=[\.!\?])\s+").ToList();
var longestSentences = sentences.Where(s => s.Length == sentences.Max(l => l.Length));
List<int> indexsOfLongestSentences = new List<int>();
if(longestSentences.Any())
indexsOfLongestSentences.AddRange(longestSentences.Select(longestSentence => sentences.IndexOf(longestSentence)));
在编辑问题之前回答
这是一种不正确的方式:
string[] lines = fileText.Split('.');
var line =lines.Max(l=>l.Length);
答案 2 :(得分:-2)
您可以使用string.Split(new string[]{"."},StringSplitOptions.None)
方法
将字符串拆分为句子数组
然后你可以选择最长的string.Length
答案 3 :(得分:-3)
没有办法。抱歉,当您的文字包含"within its .NET initiative and later approved"
和"sion is C# 6.0, which "
之类的内容时,确实没有可靠的方式来确定实际句子的开始位置和结束时间。