我正在努力解决这个问题。
我有一个像这样的多行的字符串;
Gözler ne renk olursa olsun, gözyaşları hep aynı renktedir.
Dünyanın en güzel gülüşünü ona vermişler sanki.
Kaybetmekten korktuğum ne varsa kaybettim ben.
Çünkü öyle güzel baktı ki, gökyüzünü gözlerine sığdırmıştı.
Sen gelmek isteseydin, o sokakların hep aynı bana çıkardı.
O değil de benim uzaklara gitmem lazım, çok uzaklara.
Yan yanaydık. Ve şehir böyle mucize görmemişti.
Benim yaşayacağım ne varsa, seninle olsun istiyorum.
我将这个字符串用\ n字符拆分为字符串列表,然后用空格字符拆分单词,然后用2或3组合单词;
string[] LineWords = Line.split(' ').ToArray();
int wordSplitC = 2;
List<string> CombinedWords = LineWords.Where((word, index) => index + wordSplitC <= LineWords.Length).Select((word, index) => String.Join(" ", LineWords.Skip(index).Take(wordSplitC).Select(r => r.Trim()))).ToList();
在示例中,我将第一行的单词组合在一起。 现在我应该删除重复的句子,如果句子包含一个带有另一个句子的组合词项。
在此示例中,输出字符串具有以下修改:
Gözler ne renk olursa olsun, gözyaşları hep aynı renktedir.
Dünyanın en güzel gülüşünü ona vermişler sanki.
Kaybetmekten korktuğum ne varsa kaybettim ben.
Çünkü öyle güzel baktı ki, gökyüzünü gözlerine sığdırmıştı.
**Sen gelmek isteseydin, o sokakların hep aynı bana çıkardı.**
O değil de benim uzaklara gitmem lazım, çok uzaklara.
Yan yanaydık. Ve şehir böyle mucize görmemişti.
**Benim yaşayacağım ne varsa, seninle olsun istiyorum.**
答案 0 :(得分:0)
最后有一个解决方案;
string wordSplitCount = Microsoft.VisualBasic.Interaction.InputBox("Word split count", "Enter word split count", "2");
int wordSplitC = 0;
int.TryParse(wordSplitCount, out wordSplitC);
this.richTextBox1.Enabled = false;
if (wordSplitC > 0)
{
List<string> WordList = new List<string>();
List<string> LineList = this.richTextBox1.Text.Split('\n').ToList();
LineList.Select((Line, Index) => new { Line, Index }).ToList().ForEach(Item =>
{
string[] Words = Item.Line.Split(' ').ToArray();
List<string> CombinedWords = Words.Where((word, index) => index + wordSplitC <= Words.Length).Select((word, index) => String.Join(" ", Words.Skip(index).Take(wordSplitC).Select(r => removeTurkishCharacters(r).Trim()))).ToList();
LineList.RemoveAll(x => CombinedWords.Any(c => removeTurkishCharacters(x).Contains(removeTurkishCharacters(c))) && x != Item.Line);
});
this.richTextBox2.Text = string.Join("\n", LineList);
this.richTextBox1.Enabled = true;
}
这是工作示例,
谢谢大家。