equals与== 的问题

问题描述

为什么不行?求教解法。源程序见下:privatevoidbutton1_Click(objectsender,EventArgse){stringa=Convert.ToString(myDataSet3.Tables[0].Rows[0][0]);stringb="2";MessageBox.Show(myDataSet3.Tables[0].Rows[0][4].GetType().ToString());if(a==b)allCell[0].Text="==OK";if(a.CompareTo(b)==0)allCell[0].Text="ComparetoOK";if(a.Equals(b))allCell[0].Text="EqualsOK";elseallCell[0].Text="不行"+a.ToString()+a.ToString();}//testprivatevoidbutton1_Click(objectsender,EventArgse){stringa=Convert.ToString(myDataSet3.Tables[0].Rows[0][4]);stringb="星期五";MessageBox.Show(myDataSet3.Tables[0].Rows[0][4].GetType().ToString());if(a==b)allCell[0].Text="==OK";if(a.CompareTo(b)==0)allCell[0].Text="ComparetoOK";if(a.Equals(b))allCell[0].Text="EqualsOK";//else//allCell[0].Text="不行"+a.ToString()+a.ToString();}

解决方案

解决方案二:
只是给一个忠告:不十二分清楚的情况下不要使用Equals。
解决方案三:
你从table里面读出来的字符串是不是有空格或者回车符
解决方案四:
第一个星期五后面有个换行
解决方案五:
回复1楼:我是新手,除了equals其他的比较也没成功。我的这个问题有什么解法吗?回复2楼:没有的,我的数据库设计里都是用的varchar回复3楼:没有换行,你可以看else后面的语句。那是一个button,颜色和背景色一样,换行只是button的第一行地方不够了
解决方案六:
2楼我又试了一下,你说对了。确实是会产生一个空格。可是问题是我的数据库里都是用的varchar呀,这是怎么回事?

时间: 2025-01-01 01:36:19

equals与== 的问题的相关文章

==和equals是很有区别的

区别 ==是判断两个变量或实例是不是指向同一个内存空间equals是判断两个变量或实例所指向的内存空间的值是不是相同

Java String 的 equals() 方法可能的优化

优化 JDK1.4, 1.5 的 String Class 代码如下 以下内容为程序代码 public final class String     implements java.io.Serializable, Comparable<String>, CharSequence {     /** The value is used for character storage. */     private final char value[];           /** The offs

java 小结3:hashcode和equals I/o问题

我需要把星期天看的一些东西记录下来,要不然会忘记. hashCode.equals: 1)每个java对象都有hashCode和equals方法. java的终极类是object类,那么object类是如何来标注自己呢,就是object这个类是如何来区分对方.就是使用它们的hashcode和equals来推断. (hashcode是通过hash算法实现的) 2)JVM每new一个object,都会讲Object丢到一个Hash(哈希表)里去,这样下次比较或者获取这个对象的时候就可以根据对象的ha

Java hashCode()和equals()的几个问题

本章的内容主要解决下面几个问题: 1 equals() 的作用是什么? 2 equals() 与 == 的区别是什么? 3 hashCode() 的作用是什么? 4 hashCode() 和 equals() 之间有什么联系? 第1部分 equals() 的作用 equals() 的作用是 用来判断两个对象是否相等. equals() 定义在JDK的Object.java中.通过判断两个对象的地址是否相等(即,是否是同一个对象)来区分它们是否相等.源码如下: public boolean equ

Delphi 2009之TStringBuilder类[6]: Equals

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Se

如何编写高质量equals方法

什么是equals方法 指示其他某个对象是否与此对象相等,equals方法存在Object类中,我们编写的类继承Object,可以覆盖Object的equals方法来实现我们的逻辑,去判断两个对象是否相等. Object类中的equals方法 一起来看看Object类中的源代码 public boolean equals(Object obj) { return (this == obj); } 我们可以观察到几点: equals方法是public修饰的,外部类是可以访问的 equals方法的返

Groovy Tip 1 ==、equals及其他

我们说基于Groovy语言的Java项目开发是一个敏捷的开发,除了我们使用Grails作为Web开发平台,Groovy语言本身就提供了很多敏捷的地方. 我们知道,在Java语言中,判断两个字符串的值是否相等,我们使用equals方法,而"=="作为判断两个对象引用是否相同的符号.事实证明,我们使用equals方法多过使用"=="符号,特别是在字符串的使用中. 在实际编码的过程中,形如: if(abc1.equals(abc2)) { -- } 这样的if语言特别多,

深入equals方法对象相等比较

equals方法的重要性毋须多言,只要你想比较的两个对象不愿是同一对象,你就应该实现equals方法,让对象用你认为相等的条件来进行比较.下面的内容只是API的规范,没有什么太高深的意义,但我之所以最先把它列在这儿,是因为这些规范在事实中并不是真正能保证得到实现. 1.对于任何引用类型, o.equals(o)==true 成立. 2.如果 o.equals(o1)==true 成立,那么o1.equals(o)==true也一定要成立. 3.如果 o.equals(o1)==true 成立且o

Equals、RefrenceEquals和==的区别

今天无意看到一篇有关Equals和==的区别的帖子,帖子中间简单的说成是比较引用和比较值,这样的理解很有问题. 看了看MSDN,总结如下. 从两个方面来说说这三者的区别. 先给出一个类和一个结构: public class RefrenceClass { public int X {get;set;} public string Y {get;set;} } public struct ValueStruct { public int x; public string y; } 1.引用类型的比

ValueType.Equals(null)的底层实现及CLR虚拟机对其结构支持

在定义任何一个ValueType之后,它都是从System.ValueType继承过来的,默认的就继承了Equals方法和GetHashCode方法,在使用的时候,必须主意的是最好重写自定义ValueType的这两个方法,因为可能带来性能上面的严重问题或者是比较的不正确. 譬如定义下面这样的一个结构体值类型: struct TestValueType { public int Myint; public float Myfloat; } TestValueType V1,V2; V1.Equal