簡體   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