首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试将字符串的第一个符号转换为int,得到奇怪的值

尝试将字符串的第一个符号转换为int,得到奇怪的值
EN

Stack Overflow用户
提问于 2012-07-26 21:13:34
回答 5查看 2.2K关注 0票数 2
代码语言:javascript
运行
复制
static void Main(string[] args)
{
    string str_val = "8584348,894";
    //int prefix = Convert.ToInt32(str_val[0]); //prefix = 56 O_o
    //int prefix = (int)str_val[0]; //what, again 56? i need 8!
    int prefix = Convert.ToInt32("8"); //at least this works -_-
}

你知道怎么把第一个符号转换成右边的数值吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-26 21:17:32

如果您使用:

代码语言:javascript
运行
复制
Convert.ToInt32(str_val[0]);

那么你实际上是在调用重载:

代码语言:javascript
运行
复制
Convert.ToInt32(char val);

它给出了作为参数传递的Unicode/Ascii字符数。

如果您想转换第一个字符,则需要强制其为字符串类型:

代码语言:javascript
运行
复制
Convert.ToInt32(str_val.Substring(0, 1));

这样,您就可以调用重载:

代码语言:javascript
运行
复制
Convert.ToInt32(string val);

它实际上做了您想要做的事情(将字符串值转换为该字符串表示的int值)。

票数 11
EN

Stack Overflow用户

发布于 2012-07-26 21:17:11

您试图解析一个字符串,但传入了一个char。首先将字符转换为字符串。

代码语言:javascript
运行
复制
int prefix = Convert.ToInt32(str_val[0].ToString());

因此,字符值8是ASCII值56,您要做的是将该值解释为字符串而不是ASCII值。通过使用.ToString()方法,您可以将字符转换为可由ToInt32方法读取的以null结尾的字符串。

票数 3
EN

Stack Overflow用户

发布于 2012-07-26 21:16:47

通过这种方式Convert.ToInt32(str_val[0]),您将读取字符串索引处的字符,该字符串将字符转换为整型。int是它的ascii。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11670105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档