晚上好。 所以我有一个文本文件,其中包含多行文本和分隔符。我需要找到条件最长的文本片段,该单词的最后一个字母必须是后一个单词的第一个字母。该文本片段可以继续多行,而不仅仅是一行。
F.e。
我们有这个字符串数组:
Hello, obvious smile eager ruler.
Rave, eyes, random.
所以从这两行我们得到的文本片段将是:
Hello, obvious smile eager ruler.
Rave, eyes
我们的文字片段以单词“eyes”结尾,因为“random”不以“s”开头。
我们的txt文件中的下两行:
Johnny, you use.
Eye eager sun.
因此,从这两个其他行我们得到的文本片段将是:
Johnny, you use.
Eye eager
我们的文字片段以单词“eager”结尾,因为“sun”不以“r”开头。
因此我们在输入文件(txt)中有多行文本和分隔符,我需要通过所有文本找到最大的文本片段。该文本片段包含单词和分隔符。
我甚至不知道从哪里开始,我想我必须使用像String.Length,Substring和String.Split这样的函数,也许Redex可能会派上用场,但我对Redex并不熟悉它还有它的功能。
我试图尽可能清楚地解释它,英语不是我的母语,所以它有点困难。
我的问题是:我应该使用什么样的算法来将我的文本分成单独的字符串,其中一个字符串包含一个单词和该单词后面的分隔符?
答案 0 :(得分:0)
让我们创建算法:
答案 1 :(得分:0)
您需要执行以下操作:
执行此操作的一种方法如下:
String text = "Johnny, you use.\nEye eager sun.";
// Splits the text into individual words
String[] words = text.ToLower().Split(new String[] {" ", ",", ".", "\n"}, StringSplitOptions.RemoveEmptyEntries);
String lastLetter = text.ToLower()[0].ToString();
String newText = text;
// Checks to see if the last letter if the previous word matches with the first letter of the next word
foreach (String word in words)
{
if (word.StartsWith(lastLetter))
{
lastLetter = word[word.Length - 1].ToString();
}
else
{
newText = text.Split(new String[] { word }, StringSplitOptions.RemoveEmptyEntries)[0]; // Split the original text at the location where the inconsistency happens and take the first text fragment.
break;
}
}
Console.WriteLine(text);
Console.WriteLine(newText);