您的位置:程序门 -> java -> web 开发



一个幼稚的问题```


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个幼稚的问题```
发表于:2007-02-27 17:50:08 楼主
一个幼稚的问题```

奇怪
d1   t2都是abc为什么不会显示a出来
    if(d1==t1){
  out.print( "a ");
  }
d1是通过d1=rs.getstring( "asdf ");数据库给的值
t1是通过t1=request.getparameter( "t1 ");post给的值
都是string类型`  
  为什么就不会显出a来呢?
发表于:2007-02-27 17:56:331楼 得分:0
java   字符串比较,是使用

if(d1.equals(t1)){

}

来实现的。

c#中可以使用     d1==t1.     java   目前只能用   d1.equals(t1)
发表于:2007-02-27 18:31:032楼 得分:0
==       ===〉改成.equals();这是内容(字符串)比较(或者是类自己重写)
发表于:2007-02-27 18:31:223楼 得分:0
就是楼上的楼上的说法
发表于:2007-02-27 18:59:554楼 得分:0
那兄弟`
  怎么多个呢?
发表于:2007-02-27 19:01:025楼 得分:0
就是说`怎么表示和`
比方说
if(d1.equals(t1)&&d2.equals(t2)){}
这样可以吗?
发表于:2007-02-27 19:28:306楼 得分:0
对象和属性是不同的:
        d1和t2都是string对象的实例,它们是不同的两个实例,所以   d1   ==   t2   返回的是false
        要判断这两个对象的值是否相同,应该使用   if   (   d1.equals(t2)   ==   true   )   ,当然不要true也可以,这样才对

if(d1.equals(t1)&&d2.equals(t2)){}
这个是不需要的,但是你愿意这样写是正确的
发表于:2007-02-27 19:30:097楼 得分:0
if(d1.equals(t1)&&d2.equals(t2)){}的目的就是判断   d1的值==t1的值   并且   d2的值==t2的值,这样做是正确的。
发表于:2007-02-27 20:29:438楼 得分:0
谢谢兄弟`   指点`
发表于:2007-02-27 23:13:599楼 得分:0
==是引用等直~
调用.equals()
发表于:2007-02-28 15:00:3510楼 得分:0
刚刚好,我前天看到一个比较详细介绍string比较的问题.贴出来大家共同学习吧.
string   a是一个引用类型变量.与普通的变量是不一样的.
问题一:我声明了什么!  

string   s   =   "hello   world! ";  

许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个string,内容是“hello   world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。  
这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为string的任何对象,目前指向 "hello   world! "这个string类型的对象。这就是真正发生的事情。我们并没有声明一个string对象,我们只是声明了一个只能指向string对象的引用变量。所以,如果在刚才那句语句后面,如果再运行一句:  

string   string   =   s;  

我们是声明了另外一个只能指向string对象的引用,名为string,并没有第二个对象产生,string还是指向原来那个对象,也就是,和s指向同一个对象。  

问题二: "== "和equals方法究竟有什么区别?  

==操作符专门用来比较变量的值是否相等。比较好理解的一点是:  
int   a=10;  
int   b=10;  
则a==b将是true。  
但不好理解的地方是:  
string   a=new   string( "foo ");  
string   b=new   string( "foo ");  
则a==b将返回false。  

根据前一帖说过,对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。a和b都使用了new操作符,意味着将在内存中产生两个内容为 "foo "的字符串,既然是“两个”,它们自然位于不同的内存地址。a和b的值其实是两个不同的内存地址的值,所以使用 "== "操作符,结果会是false。诚然,a和b所指的对象,它们的内容都是 "foo ",应该是“相等”,但是==操作符并不涉及到对象内容的比较。  
对象内容的比较,正是equals方法做的事。
发表于:2007-02-28 16:49:3111楼 得分:0
java代码==     表示的是内存地址比较,你比较值的话应该用equals方法
发表于:2007-02-28 16:53:2512楼 得分:0
楼上的都说了   我怎么办??


快速检索

最新资讯
热门点击