ToString 如何与索引器一起使用?
How does the ToString work with indexers?
我有以下代码:
int age = 47;
int firstDigit = age.ToString()[0];
Console.WriteLine($"firstDigit: { firstDigit }");
如果我 运行 这些代码,我得到 firstDigit 的 52
值。
在这段代码中发生了什么以获得值 52?
我怎样才能得到正确的第一位数字 (=4) 的年龄?
52 是数字 4 的 UNICODE/ASCII 值,您真正要做的是将年龄转换为字符串“47”,并将第一个字符“4”作为整数,即 52 - 只是使用 char 坚持 "4"
52 是 for 4 的 ascii 值。要得到 4
,你需要这样:
int age = 47;
char firstDigit = age.ToString()[0];
Console.WriteLine($"firstDigit: { firstDigit }");
请记住,数字四与字符值“4”之间存在很大差异。如果你真的想要数字四,你可以这样做:
int age = 47;
int firstDigit = age.ToString()[0] - '0';
Console.WriteLine($"firstDigit: { firstDigit }");
它依赖于这样的想法,即无论您使用的是什么字符系统,数字将始终按从 0 开始的顺序表示。
将其解析为字符串:
int age = 47;
Console.Write(age.ToString()[0]);
我有以下代码:
int age = 47;
int firstDigit = age.ToString()[0];
Console.WriteLine($"firstDigit: { firstDigit }");
如果我 运行 这些代码,我得到 firstDigit 的 52
值。
在这段代码中发生了什么以获得值 52?
我怎样才能得到正确的第一位数字 (=4) 的年龄?
52 是数字 4 的 UNICODE/ASCII 值,您真正要做的是将年龄转换为字符串“47”,并将第一个字符“4”作为整数,即 52 - 只是使用 char 坚持 "4"
52 是 for 4 的 ascii 值。要得到 4
,你需要这样:
int age = 47;
char firstDigit = age.ToString()[0];
Console.WriteLine($"firstDigit: { firstDigit }");
请记住,数字四与字符值“4”之间存在很大差异。如果你真的想要数字四,你可以这样做:
int age = 47;
int firstDigit = age.ToString()[0] - '0';
Console.WriteLine($"firstDigit: { firstDigit }");
它依赖于这样的想法,即无论您使用的是什么字符系统,数字将始终按从 0 开始的顺序表示。
将其解析为字符串:
int age = 47;
Console.Write(age.ToString()[0]);