首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 7在调试消息中放置空字符串的行为看起来很奇怪

Java 7在调试消息中放置空字符串的行为看起来很奇怪
EN

Stack Overflow用户
提问于 2012-12-27 02:35:34
回答 2查看 77关注 0票数 1

我在我的程序中注意到一些奇怪的行为,至少对我来说是这样。

输出不正确:

代码语言:javascript
复制
public static void main(String[] args)
    {
        while(count < 3)
        {
            System.out.println("Count: " + count);
            System.out.println("" +(count*2)+1);
            count++;
        }
    }

生成以下打印语句:

代码语言:javascript
复制
Count: 1
21
Count: 2
41

鉴于此程序:

代码语言:javascript
复制
public static void main(String[] args)
    {
        while(count < 3)
        {
            System.out.println("Count: " + count);
            System.out.println((count*2)+1 + "");
            count++;
        }
    }

产生以下输出:

代码语言:javascript
复制
Count: 1
3
Count: 2
5

我的问题是,当您将空字符串""放在算术表达式的前面时,Java7是否做了一些特殊的事情,而当空字符串紧跟在算术表达式之后时,Java7不会这样做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-27 02:36:40

+运算符有两个含义。

number + number表示加法;string + anything表示字符串连接。

+运算符是左结合的。

因此,"" + a + b"被解析为("" + a) + b

票数 10
EN

Stack Overflow用户

发布于 2012-12-27 02:39:49

您的括号有问题。

代码语言:javascript
复制
("" +(count*2)) + 1

代码语言:javascript
复制
(count*2 + 1) + ""

是不一样的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14044678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档