【发布时间】:2020-05-16 15:24:37
【问题描述】:
考虑一些字符串,假设它们包含“Wxxx”形式的“键”,其中 x 是从 0 到 9 的数字。每一个可以只包含一个,也可以包含多个,用“,”分隔,后跟两个空格。例如:
W123
W432
W546, W234, W167
包含多个“键”的那些需要拆分成一个数组。所以,上面例子中的最后一个应该被拆分成这样的数组:{"W546", "W234", "W167"}。
作为一种快速解决方案,我想到了String.Split,但据我所知,它可以包含一个字符,例如“,”。问题是它会返回一个像这样的数组:{"W546", " W234", " W167"}。从第二个开始的所有数组条目中的两个空格可能可以使用Substring 删除,但是有更好的解决方案吗?
就上下文而言,这些值保存在电子表格中,并假定已经过数据验证,以确保“键”以逗号分隔,后跟两个空格。
while ((ws.Cells[row,1].Value!=null) && (ws.Cells[row,1].Value.ToString().Equals("")))
{
// there can be one key, or multiple keys separated by ','
if (ws.Cells[row,keysCol].Value.ToString().Contains(','))
{
// there are multiple
// need to split the ones in this cell separated by a comma
}
else
{
// there is one
}
row++;
}
【问题讨论】:
-
Split 可以将字符串数组作为参数。那不能解决你的问题。如果您的数据不是完全固定的格式,您也可以拆分多个逗号/空格变体
-
始终检查问题的格式。前两个值位于不同行的事实在格式中丢失了。
标签: c# arrays .net string split