A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

滴滴答答的响

初级黑马

  • 黑马币:65

  • 帖子:28

  • 精华:0

© 滴滴答答的响 初级黑马   /  2017-3-15 13:09  /  1212 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

可不可以用输入中文作为判断条件,例如while("完了".equals(line))   { break; }  ,为什么我输入"完了",不执行break . 我试过了英文字符串可以,谁能教教我,是不是不能用equals,我用 == 也不行.输入其他中文,在输入"完了",居然不执行break

7 个回复

倒序浏览
回复 使用道具 举报
equals 比较的是地址值,要想比较字符串内容是否相同,要用egnore()。
回复 使用道具 举报 0 1
[Java] 纯文本查看 复制代码
public class Test3 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入完了:");
		String line = sc.nextLine();
		while("完了".equals(line)) {
			break;
		}
		System.out.println("你真的完了");
	}

}


运行结果:
请输入完了:
完了
你真的完了

表示没问题啊
回复 使用道具 举报
亮仔开发 发表于 2017-3-15 17:11
equals 比较的是地址值,要想比较字符串内容是否相同,要用egnore()。

你说反了。equals 比较的才是内容,==比较的是地址。如图中,执行结果是 true  false  true  true


3.png (135.25 KB, 下载次数: 15)

3.png
回复 使用道具 举报
mrwalker 发表于 2017-3-16 09:51
[mw_shl_code=java,true]public class Test3 {

        public static void main(String[] args) {

你先输入其他中文,在输入完了试试
回复 使用道具 举报
尴尬,茧绸了。。。。。
回复 使用道具 举报
我也可以啊{:8_478:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马