我有一个字符串,长度限制为140个字符。通常,在我的代码中会超过140个字符。字符串是以Mxxxx格式的一组值,其中x可以是任何数字,并且它没有严格的长度限制。因此,我既可以有M1,也可以有M281。
如果字符串超过了140个字符,我想要取前面的140个字符,但如果最后一个字符被截断了一半,我不想在我的字符串中包含它。
尽管如此,我仍然需要将第二部分保存在某个本地变量中。
例如,假设这是该字符串。
如果字符串超过了140个字符,我想要取前面的140个字符,但如果最后一个字符被截断了一半,我不想在我的字符串中包含它。
尽管如此,我仍然需要将第二部分保存在某个本地变量中。
例如,假设这是该字符串。
"M5903, M6169, M6753, M619, M6169, M6753, M6919, M6169, M6753, M919, M6169, M6753, M6919, M6169, M6753, M6919, M6169, M6753, M919, M6169, M6753, M6919, M669, M6753, M6919, M69, M6753, M6919, M6169, M63, M6919, M6169, M6753, M6919, M619, M653, M6919, M66, M6753, M19, M6169, M6753, M6919, M6169, M6753, M6919, M6169, M6753, M6919, M6169, M6753, M619"
假设这是前140个字符:
"M5903, M6169, M6753, M619, M6169, M6753, M6919, M6169, M6753, M919, M6169, M6753, M6919, M6169, M6753, M6919, M6169, M6753, M919, M6169, M6753, M6919, M669, M6753, M6919, M69, M6753, M6919, M6169, M63, M69"
上一个值是M6919
,但它被分成了M69
和19
。
最有效的方法是:如果字符串长度超过140,则进行拆分;但如果新字符串中的最后一个值被拆分为两个部分,则将它从第一个字符串中移除,并将其与原始字符串剩余部分一起放入其他字符串值中。
可能有许多实现方式。我可以使用if或switch/case循环,如果第二个字符串的第一个字母不是'M',则知道该值已拆分,应该将其从第一个字符串中移除,但是否有比这更简洁的解决方案?
private static string CreateSettlmentStringsForUnstructuredField(string settlementsString)
{
string returnSettlementsString = settlementsString.Replace(", ", " ");
if (returnSettlementsString.Length > 140)
{
returnSettlementsString.Substring(0, 140);
/*if returnSettlementsString was spitted in two in a way
that last value was broken in two parts, take that value
out of returnSettlementStrings and put it in some new
string value with the other half of the string.*/
}
return returnSettlementsString;
}
Mx
之外,每个Mx
后面都有一个逗号吗? - Hamid Pourjam