String DrugZh = rs.getString("DrugFlag");
String Drug1 = DrugZh.substring(0,1);
if(Drug1=="0")
{
  Drug1Bm="否"; 

else 

Drug1Bm = "是"; 
}
我是一名初学者,如果感觉我写的代码垃圾,那我承认。不过现在有一件事小弟非常迷糊。如上,从数据库里读出一条数据,赋给一个变量,把这个变量用左取涵数取它的第一位值再赋给一个变量。这个变量的值,不是0就是1。那么我这么写为什么无论在数据库里写的是0还是1都体现的是Drug1Bm = "是"; 这条。也就是说,系统认为Drug1从来没得过0.不知道这是为什么,好迷糊。我out.print(Drug1)的时候,他的值是有的,在数据库里填写几就出几。谢谢各位,我一共就这些分。

解决方案 »

  1.   

    if("0".equals(Drug1))这样才对!!== 比较的是数字类型和对象  而不是值!
      

  2.   

    DrugZh 先trim()一下,db里出来的东西常常有空格
      

  3.   


    equals 只比较内容  所以要用 equals
      

  4.   

    == 比较的是地址 换成equals再试
      

  5.   

    java中equals和==的区别
    http://www.javawind.net/5b016f382218328f0122e4ef14fa1b3e.jhtml
      

  6.   

    LZ要弄清楚==和equals的区别
    转的:
    在讲 == 和 equals 的区别前我们需要确认一下 Java 中的数据类型。在Java中有基本数据类型和引用数据类型两种。
    1、8种基本数据类型:
    四种整数类型(byte、short、int、long)
    两种浮点数类型(float、double)
    一种字符类型(char)
    一种布尔类型(boolean)
    2、引用数据类型:除了上面我们说的 8 种基本数据类型外,其他在Java中出现的类型都是引用数据类型。如我们自己写了一个Dog类,而在上面说的8种基本数据类型中不包括Dog类型,所以Dog类型是隶属于
    引用数据类型的。==的理解:要理解 == 我们学要从两个方面来理解:(1) == 两边为 8 中基本数据类型时:
        当 == 两边为8中基本数据类型时, == 判断的是两边变量中存放的内容是否相等。例:
    public class Test {public static void main(String[] args) {
    int a = 10;
    int b = 10;
    if (a == b) {
       System.out.println("变量a和变量b中的值相等");
    }
    }}上面的例子的运行结果是在控制台中输出"变量a和变量b中的值相等" 我们可以看出当 == 两边为8种基本数据类型时比较的时内容换句话说就是比较变量的值。(2) == 两边为引用数据类型时:
         当 == 两边为引用数据类型事,== 判断的是引用数据类型的对象的内存地址是否一样,如果 == 比较的内存地址一样表示 == 两边是同一个对象,否则 == 两边不是同一个对象。例:
    public class Test {public static void main(String[] args) {
                //在8中数据类型中没有String类型所以String是属于引用数据类型的
    String str1 = new String("abc");
                //在这里在创建一个str2对象让他的值和str1一样
    String str2 = new String("abc");
                //我们在用 == 来进行判断会发现 str1 == str2条件不成立我们可以看出这里比较的不是str1和str2的值
    if (str1 == str2) {
       System.out.println("对象str1和对象str2是同一对象,他们的内存地址相同");
    } else {
       System.out.println("对象str1和对象str2不是同一对象,他们的内存地址不相同");
    }
    }
    }equals的理解:
    equals的理解就容易多了,equals他是一个方法,而方法只有对象才能拥有,所以equals的左边一定是一个对象他的语法格式因该是:对象名.equals(比较的内容)。
    例:public class Test {public static void main(String[] args) {
    String str1 = new String("abc");
            //equals的括号中可以直接写入要比较的内容
    if (str1.equals("abc")) {
       System.out.println("对象str1的内容和 abc 相同");
    }String str2 = new String("abc");
            //equals括号中也可以是一个要比较的对象,注意这里比较的是str1对象和str2对象的内容
    if (str1.equals(str2)) {
       System.out.println("对象str1的内容和 str2 的内容相同");
    }}
    }
      

  7.   

    字符串比较用equals()的方法String strID=new String();
    strID=(String)session.getAttribute("user_id");
    session.putValue("radiobutton",request.getParameter("radiobutton"));
    int i=0;
    if("a".equals(strID)){
    i=1;
    }else if("b".equals(strID)){
    i=2;
    }else if("c"..equals(strID)){
    i=3;
    }equals()使用最好将常量放在前面,变量放在方法内
    这样当变量为null时不会报异常
    "a".equals(strID),strID为null时,不会报错
    strID.equals(“a”),strID为null时,程序会因为异常报错