c#将richtextbox用户输入存储到定义长度为

时间:2016-03-11 07:07:59

标签: c# arrays string richtextbox

我有一个名为rtbDisclaimer的richtextbox。它设置为将用户输入限制为500个字符。我一直在试图找出一种方法来将用户输入的任何内容带入rtb,并将其分解为一个字符串数组,每个字符串元素限制为某个字符长度,例如100,但是如果第100个字符是在一个单词的中间我不希望它包含该单词,而是将它放在下一个单元中,这样单词就不会被切成两半。基本上,如果用户输入500个字符,整个内容将分为5个或6个字符串数组元素,每个元素最多限制为100个字符,而不会将任何单词切成两半。我已经四处寻找并且找不到任何可行的东西,并且无法弄清楚如何解决这个问题。此外,用户输入可以是任何长度,最多500,因此需要灵活,以允许输入范围从0到500个字符。

例: 不是这个:

[0]这是输入ri的用户输入

[1] chtextbox,因为它会出现在ar

[2]射线元素

~~~~~~~~~~~~~~~~~~~~~~~~

:此:

[0]这是输入

的用户输入

[1] richtextbox,因为它会出现在

[2]数组元素

1 个答案:

答案 0 :(得分:0)

这样的事可能吗?

var longText = "this morning, bla blabla";

var words = longText.split(' '); // split on space

var sentences = new List<string>();
var currentSentence = string.Empty();

foreach(var word in words){
    if((sentence.Length + word.Length + 1) < 100){  
            currentSentence += word + " ";
        }
    else{
        sentences.Add(currentSentence);
        currentSentence = word;
    }
}