我有像"abc 201 lmn road pqr near xyz building state maharashtra navi mumbai, 4212001 .... "
这样的地址String
我想将此字符串拆分为列表
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中的"System.ArgumentOutOfRangeException".dll 异常 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 ....
我希望我正确理解你的问题。