我想将一个字符转换为一个整数进行处理,但它没有选择它
码
test = Convert.ToInt32(ch);
Console.WriteLine(test);
if (test >= 0 && test <= 9)
{
numst[num_count] = test;
Console.WriteLine(numst[num_count]);
num_count++;
}
test,num_count是整数,numst是整数数组,ch是字符
我想检查一下如果ch是一个数字,那么将它放入整数数组
请帮助我解决逻辑错误的地方 谢谢
答案 0 :(得分:2)
如果ch
是数字字符,那么这不符合您的想法:
Convert.ToInt32(ch);
例如,字符'9'
的整数值为57
。根据您的if
条件,您预期的唯一字符基本上是unprintable characters(NUL
到TAB
)。
听起来你正在寻找Char.GetNumericValue()
:
test = Char.GetNumericValue(ch);
答案 1 :(得分:1)
如果您想测试数字,请使用char.IsDigit()
。要将该字符转换为整数,请使用char.GetNumericValue()
:
if (char.IsDigit(ch))
{
numst[num_count] = char.GetNumericValue(ch);
Console.WriteLine(numst[num_count]);
num_count++;
}
对于char.IsDigit()
和true
之间的字符, '0'
会返回'9'
,但false
代表'*'
。 char.GetNumericValue()
。
'9'
为您提供角色代表的数值。因此9
转换为Convert.ToInt32()
。
char
会将int
的值转换为'9'
。 0x39
这样的字符的值为57
或native_word
。
答案 2 :(得分:0)
有两种方法 第一种方法
if (char.IsDigit(ch))
{
numst[num_count] = char.GetNumericValue(ch);
Console.WriteLine(numst[num_count]);
num_count++;
}
第二种方法
if (ch >= 48 && ch<=57)
{
numst[num_count] = char.GetNumericValue(ch);
Console.WriteLine(numst[num_count]);
num_count++;
}
他们都工作正常,并有一些结果 谢谢你们每个人帮助我