为了账号安全,请及时绑定邮箱和手机立即绑定

java中如何将char转换为int并赋值给其他对象

java中如何将char转换为int并赋值给其他对象

汪汪一只猫 2021-06-04 22:46:44
当我将 char 转换为 int 并分配给单元格对象的不同变量时,但一个分配为 0 的值被分配为 ascii 值。class Cell {    public Cell() {}    public Cell(int row, int col) {        this.row = row;        this.col = col;    }    public int row;    public int col;}Cell makeCell(String str) {        char[] ch = str.toCharArray();        Cell cell = new Cell();        cell.row = ch[1] - 1; ** <--- cell.row assigned 0**        cell.col = ch[0] - 'A'; ** <--- cell.col assigned 48 but why?**        return cell;}public static void main(String arg[]){Cell cell = makeCell("A1");}
查看完整描述

3 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

首先,在执行您的代码时,该值48被分配给cell.row而不是分配给cell.col

就像那样,因为 的 ASCII 值'1',不是1,而是49

cell.row = ch[1] - 1;

将等于:

cell.row = 49 - 1;

这清楚地表明结果49 -1将是 48。

而另一个:

cell.col = ch[0] - 'A';

它将等于:

cell.col = 65 - 65;

因为 的 ASCII 值'A'65.


我真的不知道你在想什么你的代码acomplish但如果你想要“工作”,你需要更改1'1'


查看完整回答
反对 回复 2021-06-10
?
慕容森

TA贡献1853条经验 获得超18个赞

'1' 是 49 作为 int 值。如果从中减去 1,则结果将为 48。但是 'A' 为 65,并且您正在从中减去作为 int 的 'A',结果为 0。


查看完整回答
反对 回复 2021-06-10
?
侃侃无极

TA贡献2051条经验 获得超10个赞

cell.row = ch[1] - 1; <--- cell.row assigned 0

cell.col = ch[0] - 'A'; <--- cell.col assigned 48 but why?

字符的 Ascii 值存储在 int 值中。



查看完整回答
反对 回复 2021-06-10
  • 3 回答
  • 0 关注
  • 231 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信