在java中使用charAt添加字符给了我错误的总和

时间:2014-12-10 19:16:28

标签: java string

int x=(int)compressedText.charAt(one1+1);
int y=(int)compressedText.charAt(one1+2);
count=x+y;
count1=(char)count;

compressedText.charAt(one1 + 2)和compressedText.charAt(one1 + 1)的craracter值均等于1但是当我尝试调试我的代码时,它表示count等于98。

1 个答案:

答案 0 :(得分:3)

char投射代表数字字符int并不能完成您的想法。它采用char的Unicode值(49'1')。这就解释了为什么你得到98而不是2

由于字符'0''9'的代码值为4857,因此您可以从'0'48)中减去char相反,每个int x = compressedText.charAt(one1+1) - '0'; ,例如

int

如果要将char转换回用于表示数字字符的count,则需要撤消此转化。如果{{1}}超过一位数(> = 10),您还需要考虑多个字符。