C# 用c语言中的长度变量将字符串拆分为较小的单词#
嗨,我有一个字符串段落包含25个单词和300个字符,我想把它设置在一组标签中,可以包含40个字符。我正在尝试下面的代码与字符长度C# 用c语言中的长度变量将字符串拆分为较小的单词#,c#,string,C#,String,嗨,我有一个字符串段落包含25个单词和300个字符,我想把它设置在一组标签中,可以包含40个字符。我正在尝试下面的代码与字符长度 public static List<string> _mSplitByLength(this string str, int maxLength) { List<string> _a = new List<string>(); for (int index = 0; index < str.Length; i
public static List<string> _mSplitByLength(this string str, int maxLength)
{
List<string> _a = new List<string>();
for (int index = 0; index < str.Length; index += maxLength)
{
_a.Add(str.Substring(index, Math.Min(maxLength, str.Length - index)));
}
return _a;
}
我的问题是如何根据单词分割字符串。若最后一个字并没有提交,那个么它应该被转移到下一个列表中
我的目标是
list 1 = "My school Name is stack over flow High "
list 2 = "school."
试试这个:
string text = "My school Name is stack over flow High school.";
List<string> lines =
text
.Split(' ')
.Aggregate(new [] { "" }.ToList(), (a, x) =>
{
var last = a[a.Count - 1];
if ((last + " " + x).Length > 40)
{
a.Add(x);
}
else
{
a[a.Count - 1] = (last + " " + x).Trim();
}
return a;
});
string text=“我的学校名称是stack over flow高中。”;
列表行=
文本
.拆分(“”)
.Aggregate(新[]{”“}.ToList(),(a,x)=>
{
var last=a[a.计数-1];
如果((最后一个+“”+x).长度>40)
{
a、 加(x);
}
其他的
{
a[a.Count-1]=(最后一次+“”+x).Trim();
}
返回a;
});
我明白了:
My school Name is stack over flow High
school.
我的学校名是stack over flow High
学校
My school Name is stack over flow High
school.