如何在C#中将'int'强制转换为'char'?

时间:2012-05-30 09:22:10

标签: c# casting char int

我有一个字符串变量,它有数字和字母的混合。我想创建一个只有前一个字符串变量int值的新字符串。所以我找到了两种将int投射到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;
        }
    }
}

5 个答案:

答案 0 :(得分:4)

使用Char.IsDigit,更简单。

StringBuilder onlyNumber = new StringBuilder();
foreach (char onlyNum in puzzleData)
{
    if (Char.IsDigit(onlyNum))
    {
        onlyNumber.Append(onlyNum);
    }
}

答案 1 :(得分: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());

答案 2 :(得分:2)

int iNum = 2;

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

当0 <= x <= 9时,将适用于x。

答案 3 :(得分:2)

你可以这样做:

string justNumbers = new String(text.Where(Char.IsDigit).ToArray());

答案 4 :(得分:-2)

有几种方法:

(char)int

或者

int.Parse(char.ToString())

或者

Convert.ToChar(int);