C#高手进啦

来源:百度知道 编辑:UC知道 时间:2024/07/16 13:38:46
string num = "123456";
int a = Int32.Parse(num);
Console.WriteLine(a);
这个程序输出 123456
怎么样才能让它输出 第1个字符呢
例如 :string num = "123456";
int a = Int32.Parse(num);
Console.WriteLine(a[0]);
这样写 编译的时候出错 为何呢?
我是新手 不怎么会类型转换
请指教
string text = "123456";
int id = Convert.ToInt32(text[0]);
Console.WriteLine(id);
结果为 49
string text = "123456";
int id = Console.WriteLine(num[0].ToString());
Console.WriteLine(id);
这个是1
为什么呢?

哪有那么麻烦 直接Console.WriteLine(num[0].ToString());就可以了

你先看看
ToInt32(Char) 方法返回一个 Int32 值,该值表示 value 参数的 UTF-16 编码码位。
看看,unicode的编码位
这个部分和ASCII的差不多吧 (比如你的‘1’,就是ASCII的49,unicode编码也是类似的)
http://msdn.microsoft.com/zh-cn/developercenters/ww9t2871.aspx
待会再解释你其他问题

Convert..::.ToInt32 方法 (String)
将数字的指定 String 表示形式转换为等效的 32 位有符号整数。
你后面的num[0].ToString()是得到一个字符串,不是字符
前面的text[0]是字符(char)
你好好比较下这两个的区别,自己总结下吧
http://msdn.microsoft.com/zh-cn/developercenters/sf1aw27b.aspx

string num="123456";
char a= num[0];
int b=Convert.ToInt32(a);
Console.WriteLine(b);

"49"是数字“1”的char值,就跟A是65一样的;
下面的就行了~
string num = "123456";
str