Java 将用户输入的字母char转换为int?

Java 将用户输入的字母char转换为int?,java,Java,这是一个用户/公司之间的战舰游戏,用户的输入是字母+数字(例如:A1、B4等)。阵列为8x8网格,因此必须介于A-H和1-8之间 我让它在用户输入大写字母时工作,但小写字母会产生错误(显然,因为我的代码是一种快速修复方法,从输入中减去65 如何使用户可以输入a1或a1,并且两者在网格上的数字和位置相同?既然您已经能够操作大写字母,那么要使小写字母也能工作,您只需先将字符转换为大写字母,如下所示: int precolumn=Character.toUpperCase(answer.charAt(

这是一个用户/公司之间的战舰游戏,用户的输入是字母+数字(例如:A1、B4等)。阵列为8x8网格,因此必须介于A-H和1-8之间

我让它在用户输入大写字母时工作,但小写字母会产生错误(显然,因为我的代码是一种快速修复方法,从输入中减去65


如何使用户可以输入a1或a1,并且两者在网格上的数字和位置相同?

既然您已经能够操作大写字母,那么要使小写字母也能工作,您只需先将字符转换为大写字母,如下所示:

int precolumn=Character.toUpperCase(answer.charAt(0))-65;

这将确保所有带前缀的字母都是大写的,这样您的快速修复就可以工作了


但是,由于您知道这是一个懒惰转换,您可能需要考虑添加其他步骤,比如首先通过类型转换将字符转换为ASCII值:<代码> int ASCII=(int)character;在使用整数值进行减法之前…

如果用户已经输入了大写字符,该代码会忽略/不做任何事情吗?哈哈,你可以自己尝试一下,但无论如何,
character.toUpperCase('Q'))='Q'
所以…仅供参考,魔法数字65是'A',这是一个UTF-16代码单位。这是有意义的,因为答案中使用的
charAt
返回一个UTF-16代码单位。如果使用了-'A',则更容易阅读:它表示“距离”。