我有一个字符串变量,它有数字和字母的混合。我想创建一个只有前一个字符串变量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;
}
}
}
答案 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);