需要帮忙分割地址
本文关键字:分割 地址 | 更新日期: 2023-09-27 18:14:09
我想把下面的地址分成两行:
ABCD E FGHI JKLMNOP QRSTU VWXYz Apt NUMBER1234 Block A
0-30至第1行
字符31-第二行结束
如果第30个字符在单词之间,我想将整个单词推到第二行。在上面的地址中,第30个字符位于单词"VWXYZ"之间,所以我想将其移动到第2行,如下所示。
最后的结果应该是这样的:
第一行:ABCD E FGHI JKLMNOP QRSTU
第二行:VWXYz Apt NUMBER1234 Block A
if(address.length > 30)
{
string add = address.Tostring();
string arraystring[] = add.split(" ");
}
这假定超过30的内容将移到下一行。即使它有65个字符长。检查它是否大于30,然后从30开始向后检查,直到找到第一个空格。
string message = "ABCD E FGHI JKLMNOP QRSTU VWXYz Apt NUMBER1234 Block A";
string firstline = message;
string secondline="";
if(message.Length > 30)
{
for(int i = 30; i > 0;)
{
if(message[i] == ' ')
{
firstline = message.Substring(0, i);
secondline = message.Substring(i + 1);
break;
}
else
{
i--;
}
}
}
这是一个非常简单,非常快速的方法,不需要LINQ或Regex。
public string[] SplitLine(string line, int numberOfCharacters)
{
if (line.Length < numberOfCharacters)
return new [] { line }; // no splitting necessary
string[] result = new string[2]; // only two lines needed
int splitPoint = numberOfCharacters; // the position to split at if it is a white space
// if it is not a white space, iterate the splitPoint down until you reach a white space character
while (splitPoint >= 0 && line[splitPoint] != ' ')
splitPoint--;
//return the two lines
result[0] = line.Substring(0, splitPoint);
result[1] = line.Substring(splitPoint, line.Length - splitPoint);
return result;
}