2

我试图拆分包含这些字符的字符串#

domicilioSeparado = domicilio.Split(@"#".ToCharArray());

但每次数组只包含一个成员。我尝试了很多组合,但似乎一切正常,我还尝试用空格替换字符串,它有点工作 - 问题是它仍然是一个字符串。

domicilio = domicilio.Replace(@"#", @" ");

我该如何解决这个问题?

完整代码:

String[] domicilioSeparado;
String domicilio = dbRow["DOMICILIO"].ToString();

domicilioSeparado = domicilio.Split(@"#".ToCharArray());
if (Regex.IsMatch(domicilioSeparado.Last(), @"\d"))
{
    String domicilioSinNum = "";
    domicilioSinNum = domicilioSeparado[0];
    custTable.Rows.Add(counter, dbRow["CUENTA"], nombre,
        paterno, materno, domicilioSinNum, domicilioSeparado.Last(), tipoEntidad);
} 
4

2 回答 2

6

如果您只想在分隔符上拆分字符串,在本例中为“#”,则可以使用以下命令:

domicilioSeparado = domicilio.Split("#");

那应该给你你想要的。您的第二次尝试只是将字符串中的所有字符 '#' 替换为 ' ',这似乎不是您想要的。我们可以看到您要拆分的字符串吗?这可能有助于解释为什么它不起作用。

编辑:

好的,这就是我认为您的代码应该看起来的样子,试一试,让我知道它是如何进行的。

List<string> domicilioSeparado = new List<string>();
String domicilio = dbRow["DOMICILIO"].ToString();

domicilioSeparado = domicilio.Split("#");

if (Regex.IsMatch(domicilioSeparado.Last(), @"\d"))
{
    String domicilioSinNum = "";
    domicilioSinNum = domicilioSeparado[0];
    custTable.Rows.Add(counter, dbRow["CUENTA"], nombre,
        paterno, materno, domicilioSinNum, domicilioSeparado.Last(), tipoEntidad);
} 
于 2012-08-09T18:44:51.667 回答
1

尝试这个:

string[] domicilioSeparado;
domicilioSeparado = domicilio.Split('#');

一些注意事项: 1 - 它是 ('#'),而不是 ("#");2 - 替换不拆分字符串,它只替换该部分,保持为单个字符串。

如果您想要一个包含整个数组打印的示例:

string domicilio = "abc#def#ghi";
string[] domicilioSeparado;
domicilioSeparado = domicilio.Split('#');
for (int i = 0; i < domicilioSeparado.Length; i++)
{
   MessageBox.Show(domicilioSeparado[i]);
}

它将为 domicilioSeparado 中的每个元素打开一个消息框。

于 2012-08-09T18:51:33.223 回答