需要帮忙分割地址

本文关键字:分割 地址 | 更新日期: 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;
    }