Map map = null;
                            for (int i = 0; i < YHList.size(); i++) {
                                map = (Map)YHList.get(i);
                              String jdbz=(String)map.get("jdbz");
                               //out.print("标志:"+jdbz);
                               // 上面可以打印出 1 或者 2 证明得到了正确的值。
                                   // 可下面用什么方法都不比较,郁闷
                                if ( jdbz.trim() == "2") { 
                                if ( jdbz == "2") {
                                if ( jdbz.equals("2")) { 
                                // 以上三种方法都进行比较。郁闷死了。  
                                 
                                   String jybz="";
                                   jybz = "a";
                                   out.print("bz disp"+jybz);

                 } else {
                  String jybz="";
                  jybz = "b";
                  }  

解决方案 »

  1.   

    if ( jdbz.trim() == "2") { 
                                    if ( jdbz == "2") {
                                    if ( jdbz.equals("2")) { 
                                    // 以上三种方法都不进行比较。郁闷死了。 为什么?大侠救我。
      

  2.   

    改为:
    String s=new String("2");
    if(jdbz.trim()==s){
    if(jdbz==s){
    if(jdbz.equals(s)){
    }
    }
    }
      

  3.   

    字符串比较用equals
     if ( jdbz.trim() == "2") { 
              if ( jdbz == "2") {
                 if ( jdbz.equals("2")) { 
                      String jybz="";
                      jybz = "a";
                      out.print("bz disp"+jybz);
                      } else {
                       String jybz="";
                       jybz = "b";
         }  
    你这段代码因为 第一句判断 if ( jdbz.trim() == "2") 是不会通过的,所以下面的语句根本就不会执行。
    直接 改为:
    if ( jdbz.equals("2")) { 
                      String jybz="";
                      jybz = "a";
                      out.print("bz disp"+jybz);
                      } else {
                       String jybz="";
                       jybz = "b";
         }  
    你试试。  
      

  4.   

    String jdbz=(String)map.get("jdbz");
    取出来的字符串,不知道用什么方法比较。但是 直接输出 out.print("bz"+jdbz); 是没有问题,可已显示出来 1 或者 2
      

  5.   

     int bz=0;
                                Map map = null;
                                for (int i = 0; i < YHList.size(); i++) {
                                    map = (Map)YHList.get(i);
                                  
                             Object obj = (Object)map.get("jdbz");
     String  jdbz1 = String.valueOf(obj);
     out.print("disp:"+jdbz1);
         if (jdbz1== null){
        jdbz1="";
    }
    if (jdbz1.equals("1")){
     bz=8;
     out.print("jiefang:"+bz);
    }
    if (jdbz1.equals("2")){
     bz=9;
      out.print("daifang:"+bz);
    }
    上面的代码只显示 下面的,二不显示 比较后的 8 和 9 ,郁闷中。
    disp:2 disp:2 disp:1 disp:2 disp:2 disp:1 disp:2 disp:1 disp:2 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2 disp:1 disp:2
      

  6.   

    楼主贴出所有代码   YHList里面存储的内容
      

  7.   


    你的Map中存的是什么类型的你确定是Map<String,String>的吗?
    如果是String ,String 类型用equals就可以了 例如:
    public class Test1 { public static void main(String[] args) {

    Map<String,String> m1 = new HashMap<String ,String>();
    Map<String,String> m2 = new HashMap<String ,String>();
    Map<String,String> m3 = new HashMap<String ,String>();
    Map<String,String> m4 = new HashMap<String ,String>();
    Map<String,String> m5 = new HashMap<String ,String>();
    Map<String,String> m6 = new HashMap<String ,String>();
    Map<String,String> m7 = new HashMap<String ,String>();
    Map<String,String> m8 = new HashMap<String ,String>();
    ArrayList<Map> YHList = 
                                  new ArrayList<Map>(Arrays.asList(m1,m2,m3,m4,m5,m6,m7,m8));
    for(int i = 0 ; i < YHList.size(); i++ ){
    YHList.get(i).put("jdbz", i + "");
    }
    Map<String, String> map = null;
            for (int i = 0; i < YHList.size(); i++) {
                map = (Map)YHList.get(i);
                String jdbz=(String)map.get("jdbz");
                if ( jdbz.equals("2")) {              
                   String jybz="a";
                   System.out.println("bz disp"+jybz);             }       
          }
       }}Output:bz dispa
    如果你的Map存放的不是<String,String>的话,用你所描述的方法不能进行判断
    public class Test2 { public static void main(String[] args) {

    Map<String,Integer> m1 = new HashMap<String,Integer>();
    Map<String,Integer> m2 = new HashMap<String,Integer>();
    Map<String,Integer> m3 = new HashMap<String,Integer>();
    Map<String,Integer> m4 = new HashMap<String,Integer>();
    Map<String,Integer> m5 = new HashMap<String,Integer>();
    Map<String,Integer> m6 = new HashMap<String,Integer>();
    Map<String,Integer> m7 = new HashMap<String,Integer>();
    Map<String,Integer> m8 = new HashMap<String,Integer>();
    ArrayList<Map> YHList 
                               = new ArrayList<Map>(Arrays.asList(m1,m2,m3,m4,m5,m6,m7,m8));
    for(int i = 0 ; i < YHList.size(); i++ ){
    YHList.get(i).put("jdbz", i );
    }
    Map map = null;
            for (int i = 0; i < YHList.size(); i++) {
                map = (Map)YHList.get(i);
                String jdbz=(String)map.get("jdbz");
    //            if ( jdbz=="2") {              
    //               String jybz="a";
    //               System.out.println("bz disp"+jybz);
    //
    //             } 
                if(jdbz.equals("2")){
                 String jybz="a";
                    System.out.println("bz disp"+jybz);
                }
          }
       }}Output:
    Exception in thread "main" java.lang.ClassCastException: java.lang.Integer这种必须改为:toString()后再采用equals进行判断:
    public class Test2 { public static void main(String[] args) {

    Map<String,Integer> m1 = new HashMap<String,Integer>();
    Map<String,Integer> m2 = new HashMap<String,Integer>();
    Map<String,Integer> m3 = new HashMap<String,Integer>();
    Map<String,Integer> m4 = new HashMap<String,Integer>();
    Map<String,Integer> m5 = new HashMap<String,Integer>();
    Map<String,Integer> m6 = new HashMap<String,Integer>();
    Map<String,Integer> m7 = new HashMap<String,Integer>();
    Map<String,Integer> m8 = new HashMap<String,Integer>();
    ArrayList<Map> YHList 
                               = new ArrayList<Map>(Arrays.asList(m1,m2,m3,m4,m5,m6,m7,m8));
    for(int i = 0 ; i < YHList.size(); i++ ){
    YHList.get(i).put("jdbz", i );
    }
    Map map = null;
            for (int i = 0; i < YHList.size(); i++) {
                map = (Map)YHList.get(i);
                String jdbz=map.get("jdbz").toString();
                
                if(jdbz.equals("2")){
                 String jybz="a";
                    System.out.println("bz disp"+jybz);
                }
          }
       }}Output:
    bz dispa因为你没贴你的全部代码,以上都是我自己猜测的,你检查下,如果不是上面的这中错误,还是把全部代码贴出来吧
      

  8.   

     ArrayList YHList = YHDBAO.getYHList1(keyword,select2,jgmc,ksrq,jsrq,cxzh,number);YHLIST 为数据集,数据库中的纪录,但字段类型 都是 String 型的。纪录为:
    zda zdb zdc zdd zde zdf jdbz    zdg // 字段名称
    aaa bbb ccc ddd eee fff 1或者是2 ggg // 数据纪录
    ..
    ..
    ..我是通过下面的取出值来比较 字段为 jdbz 为1的则输出字母a jdbz为 2的输出字母 b 可是就是不能比较。郁闷
    Map map = null;
                                for (int i = 0; i < YHList.size(); i++) {
                                    map = (Map)YHList.get(i);
                                  
                             Object obj = (Object)map.get("jdbz");
                                                     String  jdbz1 = String.valueOf(obj);
                                                     out.print("disp:"+jdbz1);
                                                if (jdbz1== null){
                                                jdbz1="";
                                                                                    }
                                                    if (jdbz1.equals("1")){
                                                     bz=8;
                                                     out.print("jiefang:"+bz);
                                                                                                }
                                                    if (jdbz1.equals("2")){
                                                     bz=9;
                                                      out.print("daifang:"+bz);
                                                        }
      

  9.   


     int bz=0;
                                Map map = null;
                                for (int i = 0; i < YHList.size(); i++) {
                                    map = (Map)YHList.get(i);
                                  
                             Object obj = (Object)map.get("jdbz");
     String  jdbz1 = String.valueOf(obj);
    // out.print("disp:"+jdbz1);
         if (jdbz1== null){
        jdbz1="";
    }
    if (jdbz1.equals("1")){
     bz=8;
     out.print("jiefang:"+bz);
    }
    if (jdbz1.equals("2")){
     bz=9;
      out.print("daifang:"+bz);
    }
    上面代码只打印   0   好像没有做比较。郁闷中。
      

  10.   

    toString()后再采用equals进行判断 在判断也不行。
      

  11.   

    咳,别用字符串判断了,可能有空格什么的,
    直接将字符串编程int吧: int  bz=0; 
     Map   map   =   null; 
     for   (int   i   =   0;   i   <   YHList.size();   i++)   { 
                                                                    map   =   (Map)YHList.get(i); 
                                                                
     Object   obj   =   (Object)map.get("jdbz"); 
      String     jdbzStr   =   String.valueOf(obj);
    int jdbzInt=-1;
    //   out.print("disp:"+jdbz1); 
            if   (jdbz1!=   null){ 
             {
    jdbzInt=Integer.parseInt(jdbzStr); } 
    if   (jdbzInt==1){ 
      bz=8; 
      out.print("jiefang:"+bz); 

    if   (jdbzInt==2)){ 
      bz=9; 
        out.print("daifang:"+bz); 

      

  12.   

    自己搞定了,发现 bz=jdbz1.length(); = 6 所以怎么比较也不成功。加上 jdbz1=jdbz1.trim(); 就可以了。其实很简单的问题,让大家这么费尽。呵呵。不好意思。