首页 新闻 会员 周边 捐助

String到底是个怎样的存在? String i = ""; if(i==i+0){ sysout(“66”) }

-1
[已解决问题] 解决于 2017-05-02 12:06

String i = "";

if(i==i+0){

sysout(“66”)

}

sysout(i)//打印出来的还是空字符串

为什么这个打印不出来呢?i+0后为什么还是空字符串?求赐教

砖家变专家的主页 砖家变专家 | 初学一级 | 园豆:44
提问于:2017-05-01 18:47
< >
分享
最佳答案
0

==比较的是对象的地址吧?看和equal()的区别。你这肯定进不去的

奖励园豆:5
名字不好起啊 | 菜鸟二级 |园豆:401 | 2017-05-02 10:43

那为啥比较完后i还是空字符串,在if的括号里i不是加了和0吗,那i的值应该变成“0”,为啥没变呢?

砖家变专家 | 园豆:44 (初学一级) | 2017-05-02 11:07

@砖家变专家: i + 0后你又没存,怎么可能是0?如果你 i = i+0 的话,i 是 0。光 i + 0,i 怎么会改变值呢?

名字不好起啊 | 园豆:401 (菜鸟二级) | 2017-05-02 12:03

@名字不好起啊: 哦哦,懂了。三克油~

砖家变专家 | 园豆:44 (初学一级) | 2017-05-02 12:05

@砖家变专家: 

public void returnAdd () {
    if(i == i + 0 ){
        System.out.println("in");
    }else{
        System.out.println("out");
        System.out.println(i);
        System.out.println(i + 0);
    }
}

多写几种可能,都试试,不过它铁定不会进 true 的

名字不好起啊 | 园豆:401 (菜鸟二级) | 2017-05-02 12:07
其他回答(3)
0

这是什么语言啊

狼爷 | 园豆:1204 (小虾三级) | 2017-05-01 22:11

 忘说了,是java

支持(0) 反对(0) 砖家变专家 | 园豆:44 (初学一级) | 2017-05-02 11:05

@砖家变专家: 肯定不行啊,i+0后是"0",跟""肯定不相等啊

支持(1) 反对(0) 狼爷 | 园豆:1204 (小虾三级) | 2017-05-02 11:24

@编程点滴: 那i+0为什么不会对i做出改变呢? 我想的是i+0后i就变成了 “0”,但最后i还是“”,这是为啥呢

支持(0) 反对(0) 砖家变专家 | 园豆:44 (初学一级) | 2017-05-02 11:27
0

因为你变量i = ""咯;空值

MRGan | 园豆:71 (初学一级) | 2017-05-02 10:28

java里 string是对象还是基本元素?string在栈里还是堆里?

支持(0) 反对(0) 砖家变专家 | 园豆:44 (初学一级) | 2017-05-02 11:08
1

同学,Java基础还是要继续看的……

1. Java中,String不属于基本类型,它是字符串类型,继承自Object类。

2. 运算符号=等号是赋值,==两个等号是判断比较(比较的是引用,也就说比较的是变量的地址)。

3. 打印语句不是System.out.println()这个么,是不是输入完“sysout”之后没按快捷键。

安静的下雪天 | 园豆:274 (菜鸟二级) | 2017-05-02 11:30

如果说String是字符串类型,继承自Object类。那他是不是对象?

支持(0) 反对(0) 砖家变专家 | 园豆:44 (初学一级) | 2017-05-02 11:34

输这个总是输不对:System.out.println()

于是就偷懒输了个这个:sysout  O(∩_∩)O

支持(0) 反对(0) 砖家变专家 | 园豆:44 (初学一级) | 2017-05-02 11:35

弄明白了,谢谢

支持(0) 反对(0) 砖家变专家 | 园豆:44 (初学一级) | 2017-05-02 12:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册