Я хочу разбить строку на определенную длину, но я также хочу убедиться, что это полное слово. Например, если бы я был:Разделить строку по длине с добавленным условием
string str = "Hello I have a dog ";
, и я хотел разбить его на куски 5 Я хотел бы сделать что-то вроде этого (который я получил от Split String into smaller Strings by length variable):
public IEnumerable<string> SplitByLength(string s, int length)
{
for (int i = 0; i < s.Length; i += length)
{
if (i + length <= s.Length)
{
yield return s.Substring(i, length);
}
else
{
yield return s.Substring(i);
}
}
}
, но это приведет к в выходе, таком как
"Hello"
"I Hav"
"e a d"
"og"
Как я мог адаптировать его так, чтобы он разделился после 5 или после пробела? Так что я хотел бы получить:
"Hello"
"I"
"Have"
Это не лучший пример, но это лучшее, что я мог придумать с верхней части моей головы. Причина, по которой мне это нужно, это то, что я показываю результаты на веб-странице, и после определенного количества слов ее трудно читать из-за фонового изображения, поэтому, когда она достигает предела, она ломает строку, но я не нажимаю «Не хочу половину слова на одной строке, а вторую половину на следующей строке.
разделить их после того, как пространства? поэтому, когда вы находите разделение пространства – Haris
Почему бы не 's.Split ('');'? – Guy
Если ваша проблема заключается в текстовом представлении на веб-странице, вы должны изучить HTML/CSS вместо разделения текста, потому что что происходит с разными размерами экрана и т. Д.? –