string [index]不能正常工作

时间:2014-11-17 15:52:34

标签: c# string

我有这个代码,它获取字符串中'['的索引。然后它从字符串中的下一个字符创建一个整数,在本例中我假设它是'9'。但是value设置为57?

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

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

我尝试过只做文本[索引],文本[索引-1]和文本[索引+2]

1 个答案:

答案 0 :(得分:4)

text[index+1]会返回一个字符并将其转换为Int16将返回其57 9的ASCII值。

您可以使用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()

如果您要将结果存储在Convert.ToInt16Int32

,也无需使用int