【问题标题】:check whether two strings are nearly equal in Java检查Java中两个字符串是否几乎相等
【发布时间】:2018-06-07 18:33:14
【问题描述】:

我的 java NetBeans 项目中有一个名为LCIJInternalFrame 表单,名为POST。在LCI 中有一个JTextArea,称为HEADING。当我在HEADING 并单击名为 SEARCHJButton 我需要将 HEADING 与已存储在名为 Heading 的数据库表列中的所有数据进行比较。

如果某个数据项的某些部分与我在HEADING 中键入的文本匹配,则特定数据项应将 db 表中的整行数据抓取到LCI 上的输入字段中,否则给出错误信息。

下面是JButtonActionPerformed方法的代码,称为SEARCH

 private void SEARCHActionPerformed(java.awt.event.ActionEvent evt) {                                       
        try{
            Statement s=DB.getConnection().createStatement();  
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            HEADING.getText().toCharArray();
         //   s.executeUpdate("select * from LCI where Heading".compareTo(HEADING);
           // s.executeUpdate("select * from LCI where Heading".contains(HEADING);
            //s.executeUpdate("select * from LCI where Heading".matches(HEADING);
           // s.executeUpdate("select * from LCI where Heading".
            if(s.executeUpdate("select * from LCI where Heading".compareToIgnoreCase(HEADING)))
            {
                JOptionPane.showMessageDialog(this, "Finished Searching.");

            } else {
                JOptionPane.showMessageDialog(this, "Nothing similar to the text you enterd.");
            }


        }
        catch(Exception ex){
            ex.printStackTrace();
        }// TODO add your handling code here:
    } 

但是这段代码好像有问题。if(s.executeUpdate("select * from LCI where Heading".compareToIgnoreCase(HEADING)))行前出现了一个红色的感叹号

谁能告诉我如何修改此代码以完成我需要的工作?非常感谢您。我使用NetBeans 8.0.2

【问题讨论】:

    标签: java mysql search jtextarea string-comparison


    【解决方案1】:

    您的 HEADING 是一个字符数组,但 compareToIgnoreCase 需要一个字符串参数。

    【讨论】:

    • 谢谢 Shanon 我也试过这种方式。 HEADING.getText().toString(); if(s.executeUpdate("select * from LCI where Heading".compareToIgnoreCase(HEADING))) { JOptionPane.showMessageDialog(this, "Finished Searching."); } else { JOptionPane.showMessageDialog(this, "与您输入的文本没有任何相似之处。"); } 但它也给出了一个红色的感叹号。
    【解决方案2】:

    将此行替换为下一个代码:

    if(s.executeUpdate("select * from LCI where Heading".equalsIgnoreCase(HEADING)))
    

    即只需将 compareToIgnoreCase 替换为 equalsIgnoreCase

    更新: 在这一行中,您尝试将整数值传递给方法 executeUpdate,但必须使用包含 sql 的字符串调用此方法。请描述一下你想在这段代码中做什么?

    【讨论】:

    • 谢谢安东。我会试试的。 :)
    猜你喜欢
    • 1970-01-01
    • 2015-10-17
    • 2021-03-30
    • 1970-01-01
    • 2020-05-05
    • 2015-10-30
    • 2021-01-12
    • 1970-01-01
    相关资源
    最近更新 更多