java的Scanner类和if的问题

//原程序在这importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){Sca... //原程序在这import java.util.Scanner;public class Test { public static void main(String[] args){ Scanner reader = new Scanner(System.in); System.out.print("输入"); String str = reader.nextLine(); /*switch(str){ case"abc":System.out.println("1");break; case"bcd":System.out.println("2");break; default:System.out.println("不相等"); }*/ if(str == "abc"){ System.out.println("1"); }else if(str == "bcd"){ System.out.println("2"); }else{ System.out.println("不相等"); } }}/*问题来了:1.Scanner输入后返回的是原来的String值吗? * 2.if表达式里为什么会不相等,怎么做才能相等? 展开
 我来答
dark19861201
2017-03-22 · TA获得超过2153个赞
知道大有可为答主
回答量:2584
采纳率:79%
帮助的人:1794万
展开全部
  1. 当然是原来的值

  2. 不相等是因为在java中==比较的是两个对象的地址,并非值,要比较两个字符串值是否相等,需要使用equals方法进行比较比如"abc".equlas(str)

追问
对象的地址是怎么理解呢,能给我详细讲讲吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式