[英]Convert convert int to alphabetical value
我想将1-26之间的int
转换为相应的字母char
我看到某个地方可以使用char outPut = (char)currentValue;
或Convert.ToChar(currentValue
但是都似乎不起作用。我正在通过程序将字符打印到控制台来进行测试。这两种尝试都导致打印了一个空字符
我正在制作一个程序,该程序接受一个char
字母,将其转换为int
对其进行一些数学运算,然后将最终的int
转换回char
字母,并将char
打印到控制台
char outPut = (char)currentValue;
会为您提供一个代表某些空格字符的字符(因为这些字符表示为最多32个整数)。
您真正想要的是一个代表字母的字符 。 以下代码将为您提供小写字母的第i个字母:
char c = (char)((int)'a' + i - 1);
或大写:
char c = (char)((int)'A' + i - 1);
它使用字母由连续整数表示的事实。
您可以使用所需的字符进行偏移。 在这种情况下,我使用'a'
。
Console.WriteLine((char)(5 + 'a'));
由于您的范围以1
开头,因此您需要使用'a'-1
。
可以使用ASCII表来回转换int
和char
A
ASCII值为65。因此,您可以通过执行以下操作获得char A
:
char a = (char) 65;
使用1-26表示将其转换回去
int num = a - 65 + 1;
您将需要进行一些边界检查,以确保该数字当然在范围内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.