2014-11-17 20 views
-1

我有這個代碼,它獲取'['在字符串中的索引。然後它會從字符串中的下一個字符創建一個整數,我假設在這個例子中是'9'。但是value正在設置爲57?字符串[索引]不工作,因爲我會承擔

string text = "Red Onyx : Text 1 - [9]"; 

int index = text.IndexOf("["); 
int value = Convert.ToInt16(text[index+1]); 

我試圖做的只是文字[指數],文[指數-1],和文本[指數+2]

+1

http://www.asciitable.com/ 57(整數)是「9」的ASCII值。 「9」是一個不是整數的數字。 – Plutonix

回答

4

text[index+1]會回到你的字符並將其轉換爲Int16將返回其ASCII值爲579

您可以使用char.GetNumericValue

int value = (int) char.GetNumericValue(text[index + 1]); 

或使用char.GetNumericValue第二個重載這需要串和索引,如:

int value = (int) char.GetNumericValue(text,index + 1); 

或者

int value = Convert.ToInt16(text[index + 1] +""); //explicitly make it string "9" 
                //or simpler text[index + 1].ToString() 

也沒有必要如果您打算將結果存儲在中,請使用或int

+0

+1。我只是打字。你比我快。你也可以做'Convert.ToInt16(text.SubString(index + 1,1))'或'Convert.ToInt16(text [index + 1] .ToString())' – Nick

相關問題