[英]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.