Topic: 为什么比较两个text的内容时,结果都只有一个? |
Print this page |
1.为什么比较两个text的内容时,结果都只有一个? | Copy to clipboard |
Posted by: rav163 Posted on: 2006-05-17 21:12 程序有两个text,一个Button,用来实现点击Button来比较两个text的内容是否一样: 代码为: final Text text = new Text(group, SWT.BORDER); text.setBounds(138, 19, 150, 25); final Text text_1 = new Text(group, SWT.PASSWORD | SWT.BORDER); text_1.setBounds(138, 91, 150, 25); final Button button = new Button(group, SWT.NONE); button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { String str=text.getText(); String str_1=text_1.getText(); if(str==str_1) MessageDialog.openInformation(null,"","相同"); else MessageDialog.openInformation(null,"","不同"); } button.setText("button"); button.setBounds(108, 155, 90, 45); 问题是: 无论输入相同或不相同的内容,为什么最后的结果都是“不同”? 谁能帮我看下,谢谢!!!!!! |
2.Re:为什么比较两个text的内容时,结果都只有一个? [Re: rav163] | Copy to clipboard |
Posted by: why Posted on: 2006-05-17 21:19 > if(str==str_1) should use .equals |
3.Re:为什么比较两个text的内容时,结果都只有一个? [Re: rav163] | Copy to clipboard |
Posted by: damondeng Posted on: 2006-05-18 08:43 应该注意的是String在Java里是一个对象, 就象楼上说的, 比较两个对象是否相同要用对象的equals方法. 这对初学者来说可以是一个比较常见的问题. 如果直接用"str==str_1"做比较, 相当于是比较两个对象的地址, 这是内存中的两个对象, 地址肯定是不一样的. 用equals方法进行比较, 在方法里会对字符串里的字符逐个进行比较, 这才能得到正确结果. 又打个比方, 比如你买房, 想知道204A和304A是不是一样的, 如果你直接比较 "if(204A==304A)"那结果肯定是不一样, 如果你用"if(204A.equals(304A))", 售楼小姐(相当于是equals方法的实现)会告诉你204A和304A的结构是一样的, 价钱也一样, 它们是"相同"的. |
4.Re:为什么比较两个text的内容时,结果都只有一个? [Re: rav163] | Copy to clipboard |
Posted by: xuyan268 Posted on: 2006-05-21 22:18 上楼的大哥解释的好透彻哦!! 佩服! |
5.Re:为什么比较两个text的内容时,结果都只有一个? [Re: rav163] | Copy to clipboard |
Posted by: lisliefor Posted on: 2006-05-24 21:53 类似的问题,最近很多啊! 为什么不看别人的帖子呢? |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |