gpt4 book ai didi

c# - 将转换后的值存储在变量中

转载 作者:太空宇宙 更新时间:2023-11-03 17:31:03 24 4
gpt4 key购买 nike

我正在尝试存储提取的字符串的值..我无法使其正常工作

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string a = "123";

int c = a[a.Length - 1];

Console.WriteLine(c);
}
}
}


3不应存储在变量c中吗?我只想存储3个。我不知道这是怎么回事,输出为“ 51”,那怎么可能?

最佳答案

3不应存储在变量c中吗?


不,'3'的整数表示形式应该存储在变量c中,的确如此。

您实际上正在做:

char tmp = a[a.Length - 1]; // tmp = '3'
int c = tmp; // Implicit conversion to int


.NET中的“字符”表示形式实际上是UTF-16代码单元...从 char转换为 int只是复制该代码单元。

'3'的代码单元为51,因此您的输出为。

如果仅使用 char,则可以:

string a = "123";
char c = a[a.Length - 1];
Console.WriteLine(c); // "3"


如果要获取字符的“数值”,则可以使用 char.GetNumericValue

int value = (int) char.GetNumericValue(a[a.Length - 1]);


请注意,您必须强制转换为 int,因为返回类型为 double,以便处理代表分数,无穷大等的字符。

如果您完全确定该值始终是ASCII数字,则可以减去 '0'

int value = a[a.Length - 1] - '0';


请注意,对于非数字输入,这将默默地给出“奇数”结果。

关于c# - 将转换后的值存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25442782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com