编写一些代码时,我遇到了一些奇怪的String连接语法,但惊讶地发现它可以编译。

quota.setText("Cloud storage: " + used + " (" + + + + quotaUsed / quotaAvailable * 100 + " of " + total);

奇怪的部分是四个连续+运算符之间的位置(我打算在它们之间放置更多的字符串,但令我惊讶的是它们下面没有红色的波浪线。quotaUsedquotaAvailable分别是long s和usedtotal是字符串。

谁能解释系统将如何解释该陈述?

最佳答案

第一个+将是串联运算符,接下来的三个将是the unary + operator,在这种情况下基本上是无操作。请注意,您将对分数执行整数除法,因此,如果将其写为

(100 * quotaUsed) / quotaAvailable


您将获得更高的精度。

09-13 05:19