1

数字と文字が混在する文字列変数があります。int前の文字列変数の値のみを持つ新しい文字列を作成したいと思います。だから私はにキャストintする2つの方法を見つけましたchar。ただし、機能しません。これが私が試したことです

string onlyNumberString = "";
foreach (char onlyNum in puzzleData)
{
    for (int i = 1; i < 10; i++)
    {
        if (onlyNum == (char)i)
        {
            onlyNumberString += onlyNum;
        }
    }
}

string onlyNumberString = "";
foreach (char onlyNum in puzzleData)
{
    for (int i = 1; i < 10; i++)
    {
        if (onlyNum == Convert.ToChar(i))
        {
            onlyNumberString += onlyNum;
        }
    }
}
4

5 に答える 5

4

代わりに、はるかに簡単なChar.IsDigitを使用してください。

StringBuilder onlyNumber = new StringBuilder();
foreach (char onlyNum in puzzleData)
{
    if (Char.IsDigit(onlyNum))
    {
        onlyNumber.Append(onlyNum);
    }
}
于 2012-05-30T09:25:02.500 に答える
3
int iNum = 2;

char cChar = iNum.ToString()[0];

0 <= x <= 9の場合、xに対して機能します。

于 2012-05-30T09:23:43.560 に答える
3

あなたはそれに直接キャストすることができintますchar

var myChar = (char)20;

しかし、あなたが望むことをするために、私は正規表現を使用することを提案します:

var onlyNumerals = Regex.Replace(myString, @"[^0-9]", "");

上記は、0〜9以外の文字を空のスペースに置き換えます。

別の方法として、LINQとchar.IsDigit:を使用します。

 var onlyNumeral = new string(myString.Where(c => Char.IsDigit(c)).ToArray());
于 2012-05-30T09:24:14.367 に答える
2

次のように実行できます。

string justNumbers = new String(text.Where(Char.IsDigit).ToArray());
于 2012-05-30T09:32:17.907 に答える
-2

いくつかの方法:

(char)int

または

int.Parse(char.ToString())

または

Convert.ToChar(int);
于 2012-05-30T09:25:49.963 に答える