此段代码嵌在.jsp网页中,没有预期的测试效果:
<%
String aa = "00 ";
out.print(aa.length());//输出为4
aa = aa.trim();
out.print(aa.length());//长度变为2
out.print(aa); //输出为00
if(aa == "00"){
out.print("HEllo!"); //应该输出却没有输出
}
%>
为什么if(aa == "00")判断为不相等呢??请指教!这只是个测试,我的最终目的是想从数据库里取Pri字符串来与“00”比较,不料Pri原来定义为Char(10)型的,虽然有某行的值记录为00,但数据库自动补上了空格,成了10位,而“00”只有两位。后来用trim()去掉空格,还是不能相等;我甚至把Pri改成Char(2)型,还是不能相等,这到底是为什么???
请您指教,非常感谢!!!ResultSet rs = sm.executeQuery(sql);
String[] arr=new String[5];
int i=0;
while(rs.next()) {
arr[i] = rs.getString(2).trim(); //去掉空格
i++;
}
boolean quan = false;for(int j = 0;j<arr.length;j++)
{
out.print(arr[j]);//确实有值“00”
if(arr[j]=="00") { //没有成功
quan = true;
out.print("OK!");
}
}if(quan==true){ //没有成功
out.print("HEllo!");
}%>
<%
String aa = "00 ";
out.print(aa.length());//输出为4
aa = aa.trim();
out.print(aa.length());//长度变为2
out.print(aa); //输出为00
if(aa == "00"){
out.print("HEllo!"); //应该输出却没有输出
}
%>
为什么if(aa == "00")判断为不相等呢??请指教!这只是个测试,我的最终目的是想从数据库里取Pri字符串来与“00”比较,不料Pri原来定义为Char(10)型的,虽然有某行的值记录为00,但数据库自动补上了空格,成了10位,而“00”只有两位。后来用trim()去掉空格,还是不能相等;我甚至把Pri改成Char(2)型,还是不能相等,这到底是为什么???
请您指教,非常感谢!!!ResultSet rs = sm.executeQuery(sql);
String[] arr=new String[5];
int i=0;
while(rs.next()) {
arr[i] = rs.getString(2).trim(); //去掉空格
i++;
}
boolean quan = false;for(int j = 0;j<arr.length;j++)
{
out.print(arr[j]);//确实有值“00”
if(arr[j]=="00") { //没有成功
quan = true;
out.print("OK!");
}
}if(quan==true){ //没有成功
out.print("HEllo!");
}%>
另一个out.print()应该不是输出到JSP文件吧,而是输出到WEB服务器的控制台了
out.print("HEllo!"); //应该输出却没有输出
}
换成if("00".equals(aa)){
out.print("HEllo!"); //应该输出却没有输出
}
ResultSet rs = sm.executeQuery(sql);
String[] arr=new String[5];
int i=0;
while(rs.next()){
arr[i] = rs.getString(2);
i++;
}
boolean quan = false;
for(int j = 0;j <arr.length;j++)
{
out.print(arr[j]);//确实有值“00”
if(arr[j].equals("00")){ //没有成功
quan = true;
out.print("OK!");
}
} if(quan==true){ //没有成功
out.print("HEllo!");
} 其中if(arr[j].equals("00"))报错