当前位置: 技术问答>java相关
好像不是中文问题,但是又很怪,帮忙给瞧瞧
来源: 互联网 发布时间:2015-10-27
本文导语: String strName=resultSet.getString("NodeName"); if("课程名"==strName) System.out.println("相等!!!"); 我故意做了测试,"课程名"这个字符串是我从数据库的Copy的,自然不会错喽。调试的时候看到strName的值也是"课程名",...
String strName=resultSet.getString("NodeName");
if("课程名"==strName)
System.out.println("相等!!!");
我故意做了测试,"课程名"这个字符串是我从数据库的Copy的,自然不会错喽。调试的时候看到strName的值也是"课程名",这就是说,可以显示中文。可是为什么就不相等呢?
后来,我有改成如下代码,问题依旧:
把数据值换成英文的,"Course Name",问题依旧:
try{
strId=new String(resultSet.getString("NodeName").getBytes("ISO-8859-1"),"GBK");
}catch(Exception e2){
}
数据库是ACCESS,NodeName的类型是TEXT。
if("课程名"==strName)
System.out.println("相等!!!");
我故意做了测试,"课程名"这个字符串是我从数据库的Copy的,自然不会错喽。调试的时候看到strName的值也是"课程名",这就是说,可以显示中文。可是为什么就不相等呢?
后来,我有改成如下代码,问题依旧:
把数据值换成英文的,"Course Name",问题依旧:
try{
strId=new String(resultSet.getString("NodeName").getBytes("ISO-8859-1"),"GBK");
}catch(Exception e2){
}
数据库是ACCESS,NodeName的类型是TEXT。
|
if(strName.equals("课程名"))
System.out.println("相等!!!");
字符串是对象。两个对象当然不等。
System.out.println("相等!!!");
字符串是对象。两个对象当然不等。
|
建议该用其他coding不用GBK
|
首先不要使用GBK编码,再则就是用equals比较两个字符串是否相等
|
对不起楼主和tzzxj96,偶看错了,支持.equals()反对==
:P
:P
|
"课程名"==strName这比较的是地址,比较内容的用equals()!
|
首先你对java中的字符串理解不透,在java中,“课程表”这种表示,实际上是定义了一个引用,所以我们可以这样String str=“课程表”,java中不可以重载运算符,怎么可以这样定义呢?因为“课程表”会自动生成一个引用,然后,再把这个引用赋给str。
有上可知,“课程表”=strName,实际上是在比较两个地址是否一样,根本不可能达到你的要求。
建议:"课程表".equals(strName),这样就不会有什么问题了。
有上可知,“课程表”=strName,实际上是在比较两个地址是否一样,根本不可能达到你的要求。
建议:"课程表".equals(strName),这样就不会有什么问题了。