是不是两系统的字符集不一样?数据库是oracle。

解决方案 »

  1.   

    怎么可能
    如果确实如你所说,equals的结果肯定是ture
    问题是你的message或者text之间肯定不符
    建议在
    if(text.equals(message))
    之前加段代码:
    System.out.prinln(text+"="+message);
    看看是否如你所说
      

  2.   

    是不是两个字符集不一样?数据库是oracle。
      

  3.   

    怎么可能
    如果确实如你所说,equals的结果肯定是ture
    问题是你的message或者text之间肯定不符
    建议在
    if(text.equals(message))
    之前加段代码:
    System.out.prinln(text+"="+message);
    看看是否如你所说
      

  4.   

    怎么可能
    如果确实如你所说,equals的结果肯定是ture
    问题是你的message或者text之间肯定不符
    建议在
    if(text.equals(message))
    之前加段代码:
    System.out.prinln(text+"="+message);
    看看是否如你所说
      

  5.   

    这是全部:
    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;}
    }}
      

  6.   

    你的变量中涉及到中文。
    用message = new String(message.getBytes("8859_1"),"gb2312");
    转一下再比较。
      

  7.   

    输出看看,如果字符集出问题的话,肯定有个输出会是乱码什么的
    转一下就行str=new String (str.getBytes("ISO-8859-1"),"gb2312");
      

  8.   

    text=(String)enum.nextElement().trim();就可以了。
      

  9.   

    刚才试了一下System.out.prinln(text+"="+message);
    发现text的值先是null,半秒后才变为q#1,这是为何?
    正因为这样所以老是执行else.
      

  10.   

    错了错了,我是用paint()执行的System.out.prinln(text+"="+message);,那个在线程里肯定是要慢的。
    两个确实都是q#1,为什么不祥等呢?
      

  11.   

    发现text的值先是null,半秒后才变为q#1,这是为何?
    这句话我不能理解……难道是我理解力太差?55555555<@_@>
    System.out.println输出的时候是什么值就是什么,搞不懂这和你所说的时间有什么关系?难道程序执行过了这个阶段,还会回来再循环一遍?

    btw:
    建议你定义text的时候先赋空值,比如String text = "";注意,不是null==============================================================
    如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收
      

  12.   

    试一下
    text=(String)enum.nextElement().trim();
    虽然可能性不大,但也许会管用。
      

  13.   

    怪了!在比较之前对text 和 message 用一下trim()试试看
    还有你说
    “发现text的值先是null,半秒后才变为q#1,这是为何?”
    sleep线程一段时间看看!
      

  14.   

    试了text=(String)enum.nextElement().trim();报错。resolve symbol什么的
    位置是java.long.object,我现在也觉得是长度的问题,数据库里的字段长度是10,类型是varchar。
      

  15.   

    为什么text=(String)enum.nextElement().trim();这个老是报错?
      

  16.   

    如果数据库字段类型是varchar的话,就和长度无关了
    因为varchar是变长的,不够10的话并不补空,所以长度应该不是问题
    不过话说回来,难保你两个字符串中的一个在后面拖尾带了几个空格,那就是不相等了,比如
    text = "q#1  ";
    message = "q#1";
    这样比较的话,equals返回的肯定是false
    看看是不是这个原因?
    如果还不是,那就从字符集上考虑吧,我也没辄了!!!
    ==============================================================
    如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收
      

  17.   

    你可不可以把两个String的length也打出来?看看是不是一样!
      

  18.   

    如果是后面拖带了空格的话,trim()就有用了,我昨天在jsp的时候也预到了两个字符串比较总是不相等的问题,用println()输出完全是一样的,但是if判断怎么都不相等,后来就是用trim()把多余的空格去掉了才解决的。
      

  19.   

    错: text=(String)enum.nextElement().trim();
    对: text=((String)enum.nextElement()).trim();
      

  20.   

    我记错了是char型的,所以用trim()剪掉就行了,搞了半天是和cat一样的错误。谢谢各位的热情相助。我正在搞毕业设计,学了很多java的知识,也遇见了很多像各位这样乐于助人程序员。再次深表感谢!!给分了。
      

  21.   

    难怪
    我说varchar怎么会出现追尾空格那……
    ==============================================================
    如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收
      

  22.   

    加句text = text.trim();看看