使用Scanner进行中文输入时遇到的问题?

源代码:

import java.util.Scanner; //导入对象

//实现功能:回答问题,并输入,判断是否回答正确。

public class XuanZeTi {
    public static void main(String[] args) {
        String myProvince = "四川省";
        System.out.println("我是哪个省份的?");
        Scanner input = new Scanner(System.in);//创建Scanner对象

        while (true) {
            String province = input.nextLine();
            if (province ==myProvince ) {
                System.out.println("回答正确!");
                break;
            }
            else
                System.out.println("你的回答是:"+province+"。回答错误,请重新回答");
        }
    }
}

即使输入正确的“四川省”,程序也会输出else的结果,并不会进入if里面去,这是为什么啊?

不可能学不会
浏览 766回答 2
2回答

Higanbana_

补充一下楼上  java基础数据类型 == 比较的是值  而其他的比较的是内存地址   String类不是基础类型  所以比较是的内存地址   所以返回的是false
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java