110,533
社区成员
发帖
与我相关
我的任务
分享
//异常出现的代码
string str = " VillasBethlehemTauranga 3110";
string TempBeforStr = str.Substring(0, 23);//这里出现的异常
string str = “19 Brodie Place Unit 23Braemar VillasBethlehemTauranga 3110”;
string[] strEnter = str.Split('\n');
for (int g = 0; g < strEnter.Length; g++)
{
List<string> strList = CutSubstring(strEnter[g], 23, null);//换行
}
/// <summary>
/// 截取字符串长度分割
/// </summary>
/// <param name="str">判断需要分割字符串</param>
/// <param name="strLength">设定分割长度</param>
/// <param name="strList">分割长度字符串集合</param>
/// <returns>分割长度字符串集合</returns>
public static List<string> CutSubstring(string str,int strLength, List<string> strList)
{
if (strList == null)
strList = new List<string>();
if (str.Length > strLength)//判断字符串长度是否大于设定参数长度
{//若大于
string TempBeforStr = str.Substring(0, strLength);//取设定长度的字符串
int LastLength = TempBeforStr.LastIndexOf(' ');//取此串字符中最后一个空格的索引
if (LastLength < 0)//若不存在空格 则直接截取设定长度返回
{
strList.Add(TempBeforStr);
return strList;
}
string BeforStr = str.Substring(0, LastLength);//获取未超过长度字符串
strList.Add(BeforStr);
string AfterStr = str.Substring(LastLength);//获取超过长度之后的字符串
if (AfterStr.Length > strLength)//如果超过长度之后的字符串的长度仍大于设定长度,则再一次分割
{
strList = CutSubstring(AfterStr, strLength, strList);
}
else
{
strList.Add(AfterStr);
}
}
else
{//若小于,直接返回原字符串
strList.Add(str);
return strList;
}
return strList;
}