【发布时间】:2021-07-04 16:35:35
【问题描述】:
我尝试将整数插入 char 数组但失败了,由于某种原因,当我分配一个值(例如 charc[0] = 2)时,我得到了这个奇怪的值 '50',当我尝试调试时,我注意到实际上有 2数组中每个单元格的值,例如,当我分配 charc[0] = 2 时,它显示了 2 个不同的值:“50,'2'”)。
因此,当我尝试访问每个单元格中的值时,我得到的是 50(我读的是 ASCII 值)而不是理想的 2。
“line”变量包含以下格式的字符串:“23x11x5”(3 个单独的数字,它们之间有一个“x”)。这是代码:
StreamReader sr = new StreamReader("TextFilePathHere.txt");
line = sr.ReadLine();
char[] charc = new char[line.Length];
charc = line.ToCharArray();
【问题讨论】:
-
'2' 对应于 ASCII 值
50。 upload.wikimedia.org/wikipedia/commons/thumb/1/1b/… -
I get this weird value of '50'这是一个字符代码。尝试charc[0] = '2'或charc[0] = 2.ToString()[0]或更好的charc[0] = 2 + 48其中48 是每个十进制数字的常量,因为它是字符表中0的索引。 -
反向转换
int number = int.Parse(charc[0].ToString())或干脆int number = charc[0] - 48。 -
我使用函数
ToCharArray()分配ASCII 和所需的值,你基本上是说我必须单独分配每个整数而不使用所述函数? -
解析
"23x11x5"使用int[] numbers = line.Split('x').Select(int.Parse).ToArray(),你会得到一个包含3个数字的数组。反向转换string text = string.Join("x", numbers.Select(x => x.ToString())).
标签: c# arrays visual-studio char