为什么两个不想等?? 是不是两系统的字符集不一样?数据库是oracle。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 怎么可能如果确实如你所说,equals的结果肯定是ture问题是你的message或者text之间肯定不符建议在if(text.equals(message))之前加段代码:System.out.prinln(text+"="+message);看看是否如你所说 是不是两个字符集不一样?数据库是oracle。 怎么可能如果确实如你所说,equals的结果肯定是ture问题是你的message或者text之间肯定不符建议在if(text.equals(message))之前加段代码:System.out.prinln(text+"="+message);看看是否如你所说 怎么可能如果确实如你所说,equals的结果肯定是ture问题是你的message或者text之间肯定不符建议在if(text.equals(message))之前加段代码:System.out.prinln(text+"="+message);看看是否如你所说 这是全部:class scs1 {...}public class quxian extends Applet implements ItemListener,ActionListener,Runnable{String message;scs1 dbcon;Button button1;Choice choice1;Label label1;Vector vector1;String text;Thread xianchen1=null;int flag1=1;int flag2=1;int biaozhi=0;int canshuzhi=0;int shuzu[];public void init(){message=new String("q#1");setLayout(null);button1=new Button();choice1= new Choice();label1=new Label();add(label1);add(button1);add(choice1);choice1.addItemListener(this);button1.addActionListener(this);label1.setBounds(300,10,200,10);choice1.setBounds(100,240,50,50);button1.setBounds(400,240,50,50);shuzu=new int[400];}public void start(){if(xianchen1==null);{xianchen1=new Thread(this);xianchen1.start();}}public void stop(){xianchen1.yield();xianchen1=null;}public void run(){dbcon=new scs1();dbcon.dbConnection();vector1=dbcon.results;Enumeration enum=vector1.elements();text=(String)enum.nextElement();if(message.equals(text)){flag2=1;choice1.add("温");choice1.add("锅");choice1.add("炉");}else{choice1.add("温x1");choice1.add("锅x1");choice1.add("炉x1");flag2=2;}}} 你的变量中涉及到中文。用message = new String(message.getBytes("8859_1"),"gb2312");转一下再比较。 输出看看,如果字符集出问题的话,肯定有个输出会是乱码什么的转一下就行str=new String (str.getBytes("ISO-8859-1"),"gb2312"); text=(String)enum.nextElement().trim();就可以了。 刚才试了一下System.out.prinln(text+"="+message);发现text的值先是null,半秒后才变为q#1,这是为何?正因为这样所以老是执行else. 错了错了,我是用paint()执行的System.out.prinln(text+"="+message);,那个在线程里肯定是要慢的。两个确实都是q#1,为什么不祥等呢? 发现text的值先是null,半秒后才变为q#1,这是为何?这句话我不能理解……难道是我理解力太差?55555555<@_@>System.out.println输出的时候是什么值就是什么,搞不懂这和你所说的时间有什么关系?难道程序执行过了这个阶段,还会回来再循环一遍?晕btw:建议你定义text的时候先赋空值,比如String text = "";注意,不是null==============================================================如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收 试一下text=(String)enum.nextElement().trim();虽然可能性不大,但也许会管用。 怪了!在比较之前对text 和 message 用一下trim()试试看还有你说“发现text的值先是null,半秒后才变为q#1,这是为何?”sleep线程一段时间看看! 试了text=(String)enum.nextElement().trim();报错。resolve symbol什么的位置是java.long.object,我现在也觉得是长度的问题,数据库里的字段长度是10,类型是varchar。 为什么text=(String)enum.nextElement().trim();这个老是报错? 如果数据库字段类型是varchar的话,就和长度无关了因为varchar是变长的,不够10的话并不补空,所以长度应该不是问题不过话说回来,难保你两个字符串中的一个在后面拖尾带了几个空格,那就是不相等了,比如text = "q#1 ";message = "q#1";这样比较的话,equals返回的肯定是false看看是不是这个原因?如果还不是,那就从字符集上考虑吧,我也没辄了!!!==============================================================如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收 你可不可以把两个String的length也打出来?看看是不是一样! 如果是后面拖带了空格的话,trim()就有用了,我昨天在jsp的时候也预到了两个字符串比较总是不相等的问题,用println()输出完全是一样的,但是if判断怎么都不相等,后来就是用trim()把多余的空格去掉了才解决的。 错: text=(String)enum.nextElement().trim();对: text=((String)enum.nextElement()).trim(); 我记错了是char型的,所以用trim()剪掉就行了,搞了半天是和cat一样的错误。谢谢各位的热情相助。我正在搞毕业设计,学了很多java的知识,也遇见了很多像各位这样乐于助人程序员。再次深表感谢!!给分了。 难怪我说varchar怎么会出现追尾空格那……==============================================================如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收 加句text = text.trim();看看 关于java的一个问题,求解决``` String a=new String("3"+"4")创建了几个对象? 这个例子应该怎么跑啊?有人能给说说么? 把5w行记录加入到HashMap中,这样搞是不是有点离谱? 关于二叉树问题 我有一段 java程序需要完善 求正则表达式,str = "Ta.a >= Tb.a"; 环境变量CLASSPATH的值应该是什么? 请foregump(临江一笑)接分 请问各位高手,JAVA里的Timer类怎么使用??? 我看了半天的接口,还是没有搞懂通过接口来实现多生继承的??? 请问如何清空堆栈?
如果确实如你所说,equals的结果肯定是ture
问题是你的message或者text之间肯定不符
建议在
if(text.equals(message))
之前加段代码:
System.out.prinln(text+"="+message);
看看是否如你所说
如果确实如你所说,equals的结果肯定是ture
问题是你的message或者text之间肯定不符
建议在
if(text.equals(message))
之前加段代码:
System.out.prinln(text+"="+message);
看看是否如你所说
如果确实如你所说,equals的结果肯定是ture
问题是你的message或者text之间肯定不符
建议在
if(text.equals(message))
之前加段代码:
System.out.prinln(text+"="+message);
看看是否如你所说
class scs1 {...}public class quxian extends Applet implements ItemListener,ActionListener,Runnable
{
String message;
scs1 dbcon;
Button button1;
Choice choice1;
Label label1;
Vector vector1;
String text;
Thread xianchen1=null;
int flag1=1;int flag2=1;
int biaozhi=0;
int canshuzhi=0;
int shuzu[];public void init(){
message=new String("q#1");setLayout(null);
button1=new Button();
choice1= new Choice();
label1=new Label();
add(label1);
add(button1);
add(choice1);
choice1.addItemListener(this);
button1.addActionListener(this);
label1.setBounds(300,10,200,10);
choice1.setBounds(100,240,50,50);
button1.setBounds(400,240,50,50);
shuzu=new int[400];}public void start(){
if(xianchen1==null);
{xianchen1=new Thread(this);
xianchen1.start();
}}public void stop(){
xianchen1.yield();
xianchen1=null;
}
public void run(){
dbcon=new scs1();
dbcon.dbConnection();
vector1=dbcon.results;
Enumeration enum=vector1.elements();
text=(String)enum.nextElement();
if(message.equals(text)){
flag2=1;
choice1.add("温");
choice1.add("锅");
choice1.add("炉");}
else{
choice1.add("温x1");
choice1.add("锅x1");
choice1.add("炉x1");
flag2=2;}
}}
用message = new String(message.getBytes("8859_1"),"gb2312");
转一下再比较。
转一下就行str=new String (str.getBytes("ISO-8859-1"),"gb2312");
发现text的值先是null,半秒后才变为q#1,这是为何?
正因为这样所以老是执行else.
两个确实都是q#1,为什么不祥等呢?
这句话我不能理解……难道是我理解力太差?55555555<@_@>
System.out.println输出的时候是什么值就是什么,搞不懂这和你所说的时间有什么关系?难道程序执行过了这个阶段,还会回来再循环一遍?
晕
btw:
建议你定义text的时候先赋空值,比如String text = "";注意,不是null==============================================================
如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收
text=(String)enum.nextElement().trim();
虽然可能性不大,但也许会管用。
还有你说
“发现text的值先是null,半秒后才变为q#1,这是为何?”
sleep线程一段时间看看!
位置是java.long.object,我现在也觉得是长度的问题,数据库里的字段长度是10,类型是varchar。
因为varchar是变长的,不够10的话并不补空,所以长度应该不是问题
不过话说回来,难保你两个字符串中的一个在后面拖尾带了几个空格,那就是不相等了,比如
text = "q#1 ";
message = "q#1";
这样比较的话,equals返回的肯定是false
看看是不是这个原因?
如果还不是,那就从字符集上考虑吧,我也没辄了!!!
==============================================================
如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收
对: text=((String)enum.nextElement()).trim();
我说varchar怎么会出现追尾空格那……
==============================================================
如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收