簡體   English   中英

將字符串分成列表

[英]divide string into list

我有地址String"abc 201 lmn road pqr near xyz building state maharashtra navi mumbai, 4212001 .... "

我想將此字符串拆分為List like

List<string> addrList = new List<string>();
addrList.add("abc 201 lmn road pqr near");
addrList.add("xyz building state maharashtra ");
addrList.add("navi mumbai, 4212001");

我嘗試了以下功能

private string[] splitToNChar(string inputString, int chunkSize)
    {

        List<string> myList = new List<string>();
        for (int i = 0; i < inputString.Length; i += chunkSize)
        {
            myList.Add(inputString.Substring(i, chunkSize));
        }
        return myList.ToArray(); 
    }

但是當我將塊大小傳遞為40字符時,它有一個例外

拋出異常:mscorlib.dll中的'System.ArgumentOutOfRangeException'異常eee:索引和長度必須引用字符串中的位置。

如果inputString"abc 201 lmn road pqr near xyz building state maharashtra navi mumbai, 4212001 .... "

擴展功能的結果是:

private string[] splitToNChar(string inputString, int chunkSize)
{
    if (chunkSize > inputString.Length)
        throw new Exception("input string (" + inputString.Length + ") is smaller than chunksize (" + chunkSize + ")");

    List<string> myList = new List<string>();
    for (int i = 0; i < inputString.Length; i += chunkSize)
    {
        if (i + chunkSize < inputString.Length)
            myList.Add(inputString.Substring(i, chunkSize));
        else
            myList.Add(inputString.Substring(i)); //ADD REST OF STRING
    }
    return myList.ToArray();
}

輸出:

[0]  abc 201 lmn road pqr near
[1]   xyz building state mahar
[2]  ashtra navi mumbai, 42120
[3]  01 ....

我希望我能正確理解你的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM