2

これらの文字を含む文字列を分割しようとしました#

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

ただし、配列に含まれるメンバーは1つだけです。私はたくさんの組み合わせを試しましたが、何でもうまくいくようです。文字列を空白に置き換えようとしましたが、それはちょっとうまくいきました-問題は、それが単一の文字列のままであるということです。

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("#");

それはあなたが望むものを与えるはずです。2回目の試行では、文字列内のすべての文字「#」を「」に置き換えるだけですが、これは希望どおりではないようです。分割しようとしている文字列を確認できますか?それが機能しない理由を説明するのに役立つかもしれません。

編集:

さて、これがあなたのコードがどのように見えるべきだと私が思うかです、これを試してみて、それがどうなるか教えてください。

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 に答える