2017-03-23 48 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

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