(修改)如何显示与数组的输入匹配?

时间:2011-12-08 10:11:15

标签: java

有人可以告诉我这段代码的错误吗?我的问题是如果输入在数组中则显示“Found”,如果输入不在数组中,则显示“Not Found”。为什么我只能为我输入的内容显示“找到”?

String [] deptName = {"Accounting", "Human Resources","Sales"};

//input
String key = JOptionPane.showInputDialog("Enter a department: ");

for(int i=0; i<deptName.length; i++)
{
    if(deptName [i] == key);
}
System.out.println("Found");

修改

我修改了这样的代码,我怎么能不让它显示3次?

String [] deptName = {"Accounting", "Human Resources","Sales"};

//input
String key = JOptionPane.showInputDialog("Enter a department: ");

for(int i=0; i<deptName.length; i++)
{
    if(deptName [i].equals(key))
        JOptionPane.showMessageDialog(null, "Found");
    else
        JOptionPane.showMessageDialog(null, "Not Found");
}

6 个答案:

答案 0 :(得分:3)

“found”总是被打印出来,因为它不在for循环中。而你的支票(也有问题)实际上什么都没有

    your For loop {
         if(deptName [i].equals( key)){
          System.out.println("Found");
          break;
}
    }

答案 1 :(得分:2)

如果在java中对Object使用==,则只检查对象是否是完全相同的对象。要比较对象的内容,您应该使用equals()。

对于String类,equals()比较实际的String内容。

deptName[i].equals(key);  //returns true if text is the same

答案 2 :(得分:1)

这样做

for(int i=0;i<deptName.length;i++){
    if(key.equals(deptName[i]){
       JOptionPane.showMessageDialog(null,"Found"); break;
}}
if(i==deptName.length)
   {JOptionPane.showMessageDialog(null,"Not Found");}

答案 3 :(得分:0)

您有几个问题,首先需要致电equals()并且不得终止if with';'

for(int i=0; i<deptName.length; i++)  {         
    if(deptName [i].equals( key )) {
       System.out.println("Found"); 
    }
}

会像预期的那样工作。

答案 4 :(得分:0)

int i=0 ;   
for(; i<deptName.length; i++) { 
    if(key.equals(deptName[i])) break;    
} 
if( i < deptName.length) {
       // found
} else {
      // not found
}

答案 5 :(得分:0)

拧紧循环。

JOptionPane.showMessageDialog(null,Arrays.asList(deptName).contains(key) ? "Found" : "Not Found"); 

我知道这可能是一项编程工作,所以在这里你......

for(int i=0;i<deptName.length;i++){
    if(key.equals(deptName[i])
       break;
}

if(i==deptName.length)
   JOptionPane.showMessageDialog(null,"Not Found");
else
   JOptionPane.showMessageDialog(null,"Found at " + i);