在字符串声明中使用算术运算符会发生什么?

时间:2019-01-03 06:17:19

标签: java string math

如果字符串声明中包含算术运算符,那么字符串如何处理该运算符?
例如,在这种情况下:

String s = "de32";
s = s.charAt(0) * 2 + "";   
System.out.println(s);

字符串s不是dd,而是102* 2对字符串的含义是什么?

2 个答案:

答案 0 :(得分:4)

s.charAt(0)char('d'),而char是数字类型。字符'd'的数字值为100。因此,s.charAt(0) * 2只需将该值乘以2,就得到200(而不是您所写的102)。

然后将结果转换为String,因为您在其后附加了一个空的String,所以s被分配了"200"

该表达式是从左到右求值的,因此它等效于:

s = (s.charAt(0) * 2) + "";
  • 首先,将char'd'提升为int,然后乘以2
  • 然后将所得的int(200)附加到空的String“”。产生String“ 200”。

答案 1 :(得分:0)

在0位置,char d乘以2。因此d的ASCII值乘以2。由于d的ASCII值为100,所以得到结果200。然后将其附加到空字符串并给出“ 200“作为字符串。