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";
}
if ( jdbz == "2") {
if ( jdbz.equals("2")) {
// 以上三种方法都不进行比较。郁闷死了。 为什么?大侠救我。
String s=new String("2");
if(jdbz.trim()==s){
if(jdbz==s){
if(jdbz.equals(s)){
}
}
}
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";
}
你试试。
取出来的字符串,不知道用什么方法比较。但是 直接输出 out.print("bz"+jdbz); 是没有问题,可已显示出来 1 或者 2
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
你的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因为你没贴你的全部代码,以上都是我自己猜测的,你检查下,如果不是上面的这中错误,还是把全部代码贴出来吧
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);
}
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 好像没有做比较。郁闷中。
直接将字符串编程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);
}