我有下面的递归方法正在工作,我似乎无法打破它:
public static void smsMessage(string message, int maxLength)
{
int strPos = 0;
var spaces = message.ToCharArray()
.Select((v, x) => new { value = v, index = x })
.Where(element => !char.IsLetterOrDigit(element.value))
.Select(element => element.index)
.ToList();
for (int i = 0; i < spaces.Count; ++i)
{
strPos += spaces[i];
if (strPos >= maxLength || i == spaces.Count - 1 )
{
if (i == spaces.Count-1)
{
strPos -= spaces[i];
returnMessage.Add(message.Substring(0).Trim());
return;
}
strPos -= spaces[i];
returnMessage.Add(message.Substring(0, spaces[i - 1]).Trim());
message …Run Code Online (Sandbox Code Playgroud) c# ×1