C#--计算字符串中单个数字(int)出现的次数--不适用于int转char转换的变量
C#--Counting the number of occurrences of a single digit(int) in a string--not working with int to char converted Variable
我正在尝试计算 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)
returns Unicode 字符等价于传入的int值。例如,它将 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) 根据字符编码 table(例如 ASCII) . 0 in this case is a Null character)将您的位表示转换为 48,而“0”字符的位表示为 48 table
您可以使用此代码段将您的整数数字与字符进行比较
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,那么它需要多个字符,这是一个有点不同的问题。
我正在尝试计算 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)
returns Unicode 字符等价于传入的int值。例如,它将 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) 根据字符编码 table(例如 ASCII) . 0 in this case is a Null character)将您的位表示转换为 48,而“0”字符的位表示为 48 table
您可以使用此代码段将您的整数数字与字符进行比较
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,那么它需要多个字符,这是一个有点不同的问题。