1

我有一个混合了数字和字母的字符串变量。我想创建一个只包含int前一个字符串变量值的新字符串。所以我找到了两种转换intchar. 但是,它们不起作用。这是我尝试过的

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 回答