如果字符串声明中有算术运算符,字符串如何处理运算符?
例如在这种情况下:
String s = "de32";
s = s.charAt(0) * 2 + "";
System.out.println(s);
字符串 s 不是 dd
,而是 102
。 * 2
对字符串意味着什么?
最佳答案
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”。
关于java - 在字符串声明中使用算术运算符时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54017204/