C# 使用附加条件按长度拆分字符串

C# 使用附加条件按长度拆分字符串,c#,string,C#,String,我想把一个字符串拆分成一定的长度,但我还想确保它是一个完整的单词。例如,如果我有: string str = "Hello I have a dog "; 我想把它分成5块,我会这样做(我从中得到): 我如何调整它,使其在5或空格后拆分?所以我会得到: "Hello" "I" "Have" 这不是最好的例子,但却是我能想到的最好的例子。我之所以需要它,是因为我要在网页上显示结果,在读了一定数量的单词后,由于背景图像的原因,阅读起来很困难,所以当它达到极限时,它会打断一行,但我不希望在一行上显

我想把一个字符串拆分成一定的长度,但我还想确保它是一个完整的单词。例如,如果我有:

string str = "Hello I have a dog ";
我想把它分成5块,我会这样做(我从中得到):

我如何调整它,使其在5或空格后拆分?所以我会得到:

"Hello"
"I"
"Have"

这不是最好的例子,但却是我能想到的最好的例子。我之所以需要它,是因为我要在网页上显示结果,在读了一定数量的单词后,由于背景图像的原因,阅读起来很困难,所以当它达到极限时,它会打断一行,但我不希望在一行上显示一半单词,在下一行显示另一半单词。

你应该使用if/else

                if (i + length <= s.Length)
                {
                    yield return s.Substring(i, length);
                }
                else if(s[i] == ' ')
                {
                    yield return s.Substring(i, s.IndexOf(" ",i) - i);
                }
                else
                {
                    yield return s.Substring(i);
                }

if(i+length)在空格后拆分它们?那么在哪里可以找到空格拆分为什么不
s.split(“”);
?如果你的问题是网页上的文本表示,那么你应该研究HTML/CSS而不是拆分文本,因为不同的屏幕大小等会发生什么?听起来像是你试图在网页上手动包装文本。已经有很多方法可以做到这一点,而不需要拆分字符串。如@AllanS.Hansen所述,你最好打赌是要研究HTML/CSS。还有各种库,比如Bootstrap 3。如果您需要在末尾换行,那么您的要求没有意义;我希望您希望在特定字符串长度之前的最后一个空格换行。但是正如@Allan所写的,我怀疑您是否应该以编程方式执行此操作,换行是一种t应该在HTML/CSS中完成。
"Hello"
"I"
"Have"
                if (i + length <= s.Length)
                {
                    yield return s.Substring(i, length);
                }
                else if(s[i] == ' ')
                {
                    yield return s.Substring(i, s.IndexOf(" ",i) - i);
                }
                else
                {
                    yield return s.Substring(i);
                }