use*_*491 0 java eclipse android
我尝试编写一个计算器,以便学习android dev中的开头,但我面临着一个人类无法理解的问题.我希望你不是人.
看看我的If条件:
if (result != "")
{
textView.append("0");
}
Run Code Online (Sandbox Code Playgroud)
(您可能会注意到我使用了«result!=""»而不是isEmpty()方法,因为API7中不支持isEmpty().
好.现在看看我的两个"结果"变量
result "" (id=830012674816)
count 0
hashCode 0
offset 0
value (id=830012674848)
result "" (id=830022154000)
count 0
hashCode 0
offset 0
value (id=830022154032)
Run Code Online (Sandbox Code Playgroud)
(我从Eclipse Debugger复制了两个结果)
第一个结果是OK:这是我在启动程序时得到的结果:if是否完成了工作并且通过了.第二个似乎完全相同,但由于未知原因,它进入if并追加零.我按下"加号"按钮后出现此问题.
任何的想法 ?
如果您发现缺少信息或者您不了解问题,可以在此处找到整个工作区(正在进行中):http://www.sendspace.com/file/udp5d3.要重现此问题,请在程序启动时按"零"按钮,并注意它通常不会出现.然后输入任何数字,如"104","7"或"73",按"加号"按钮,然后"零".零不应该出现在这里.
谢谢 :)
不要比较字符串(或任何对象)!=.使用equals()像!("".equals(result))或!(result.equals(""))
== 用于检查引用是否包含相同的对象,而不是对象包含相同的值,
例如
Integer i1=new Integer(1);
Integer i2=new Integer(1);
Integer i3=i1;
//checking references
System.out.println(i1==i2);//false
System.out.println(i1==i3);//true
//checking values
System.out.println(i1.equals(i2));//true
System.out.println(i1.equals(i3));//true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |