【问题标题】:JAVA two equal strings return falseJAVA两个相等的字符串返回false
【发布时间】:2015-07-14 21:14:50
【问题描述】:

我有一个 JTable,我需要检查 JTable 在我的数据库中是否有一个等于 1 的条目(确实如此)。但是当我检查出来时,它给了我 false 。两个结果都是相同的( Cat 和 Cat )。

ResultSet resultset;
try {
    // Query declaration, etc
    while(resultset.next()){
        String name = resultset.getString(1);
        int quantity = resultset.getInt(2);
        checkListQuantity(name, quantity);
        }   

public void checkListQuantity(String name, int quantity){
        String string = String.format("%-40s", name);
            for(int i = 0; i < table.getRowCount(); i++){
                System.out.println("Name :"+name);
                System.out.println("Column :"+ model.getValueAt(i, 1));
                System.out.println(name.equals(String.valueOf(model.getValueAt(i, 1))));
            }

        }

    }

【问题讨论】:

  • 开头或结尾可以是空格吗? trim() 字符串看看。
  • 我们怎么知道?表从何而来?是怎么输入的?等
  • 没关系..这只是一个错误:/
  • 一般性评论:这个问题的所有答案都应该只是 cmets,就像 @Nambari 所做的那样。
  • @ChthonicProject 他们是问题的适当答案,因为他们解决了所述问题。真正的问题是这个问题是由于一个小错字/错误造成的。

标签: java string swing string-comparison


【解决方案1】:

尝试调整你的值:

 System.out.println(name.trim().equals(String.valueOf(model.getValueAt(i, 1).trim())));

【讨论】:

  • 这就是问题所在!
【解决方案2】:

尝试:

System.out.println("Name : #"+name+"#");
System.out.println("Column : #"+ model.getValueAt(i, 1)+"#");
System.out.println(name.equals(String.valueOf(model.getValueAt(i, 1))));

查看空格

【讨论】:

  • 我也用过。谢谢 !工作过
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 2019-10-06
  • 1970-01-01
  • 2011-11-14
相关资源
最近更新 更多