微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#--计算字符串中单个数字(int)的出现次数--不使用int到char转换的变量

如何解决C#--计算字符串中单个数字(int)的出现次数--不使用int到char转换的变量

我正在尝试计算 int 在字符串中出现的次数

            int count = numbers
            .Where(x => x == '0')
            .Count();

如果我输入我想检查的文字数字,如上面“0”所示,它可以工作。 但我想用它作为我可以检查其他数字的方法。不幸的是,当我将 int 转换为 char 并插入数字变量时,这不起作用

char digit = Convert.tochar(0);
            int count= numbers
                .Where(x => x == digit)
                .Count();
        

我做错了什么?

解决方法

Convert.ToChar(Int32) 返回等同于传递的 int 值的 Unicode 字符。例如,它会将 65 转换为 A

Console.WriteLine(Convert.ToChar(65)); // prints "A"

如果我正确理解您的要求,您可以调用 ToString 并获取结果字符串的第一个字符而不是 Convert.ToChar(0)

char digit = 0.ToString()[0]

或作为this answer suggests

char c = (char)(i + 48);
,

Convert.ToChar(0) 根据字符编码表(例如 ASCII)将您的位表示转换为 。在这种情况下,0 是 Null character。而根据表,“0”字符的位表示为 48

您可以使用此代码段将 int 数字与字符进行比较

 string numbers = "33";
 int digit = 3;
 int count = numbers
                // '0' -'0' (48 - 48) will give you 0 int value,// '1' - '0' (49 - 48) will give you 1 etc.
                .Where(x => x - '0' == digit) 
                .Count();

但请记住,您的数字可能大于 9,那么它将需要多个字符,这将是一个有点不同的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。