繁体   English   中英

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

[英]How to split a string with '#' in C#

我试图分割一个包含这些字符的字符串

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);
} 

如果只想在定界符上分割字符串(在这种情况下为“#”),则可以使用以下命令:

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);
} 

尝试这个:

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中的每个元素打开一个消息框。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM