2017-03-23 49 views
-5

我想的字符转换成用于处理的整数,但它不拿起它转换的问题而转换

代码

test = Convert.ToInt32(ch); 
Console.WriteLine(test); 
if (test >= 0 && test <= 9) 
{ 
    numst[num_count] = test; 
    Console.WriteLine(numst[num_count]); 
    num_count++; 
} 

测试,num_count是整数,numst是一个整数阵列和ch是一个字符

我要检查,如果CH是一个数字,然后把它放到整数数组

请帮我在哪里我错在LOGI ç 谢谢

+1

你忘了来描述你的代码有什么问题。请*添加问题描述* - 错误的细节或预期的结果 –

+0

“它没有选择它”并没有告诉我们任何关于这个问题。当你在调试器中完成这个过程时,它有多特别的失败?什么是评估的运行时间值?什么*实际发生*? – David

+0

先生在它里面没有错误 –

回答

2

如果ch数字字符那么这并不做你认为它的作用:

Convert.ToInt32(ch); 

例如,字符'9'的整数值是57。根据您的if条件,您期望的唯一字符基本上是unprintable charactersNULTAB)。

这听起来像你正在寻找Char.GetNumericValue()

test = Char.GetNumericValue(ch); 
+0

其他字符测试你提供的代码这与Char.GetNumericValue(CH),以取代Convert.ToInt32(CH); –

+0

先生CH是一个char我想找出它在当时是一个char或它在那一刻 –

+0

好先生,我有我的答案 –

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()代替转换charint。像'9'这样的字符的值是0x3957

+0

它是否可以测试我的输入字符串是“55 * 12” –

+0

以及我试试你的代码,如果我有任何问题,我让你约 –

+0

@ammadyouasf你的英语是很难理解。我显示代码测试单个字符,而不是整个字符串。你说你是通过字符串的字符进行迭代。 –

0

有2种方法 第1种方法

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++; 
} 

两者都工作正常,并有一定的成果 感谢您对每一个帮助我

+0

@勒内·沃格特先生,我如何能为你投票率 –