如何在C#中用'#'拆分字符串

时间:2012-08-09 18:33:39

标签: c# string split

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

的字符串
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);
} 

2 个答案:

答案 0 :(得分: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);
} 

答案 1 :(得分:1)

试试这个:

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

一些说明: 1 - 它是('#'),而不是(“#”); 2 - Replace不分割字符串,它只替换该部分,保持为单个字符串。

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

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

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