如果字符串声明中包含算术运算符,那么字符串如何处理该运算符?
例如,在这种情况下:
String s = "de32";
s = s.charAt(0) * 2 + "";
System.out.println(s);
字符串s不是dd
,而是102
。 * 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“作为字符串。