向量:如何检查每个元素以查看它是否等于用户输入?

时间:2013-02-13 07:55:40

标签: java

基本上这就是我所拥有的:

if(field1.getText().equals("")){
        label2.setForeground(Color.red);
        label2.setText("Please enter a pet type");
    }
    else if(field1.getText().equals(petList.get(z)){
        label2.setForeground(Color.red);
        label2.setText("The pet type already exists");
    }
    else{
        label2.setForeground(Color.red);
        label2.setText("Pet Type Added");
    String input = field1.getText();
    petList.add(j,input);
    j++;
    }

我需要做的是检查field1以查看它是否等于向量petList中的任何元素。我怎么能做到这一点?我已经尝试在if循环的外部使用for循环,如下所示:for(int z = 0; z < petList.size(); z++){但它返回的数组索引超出范围错误。任何帮助都是极好的!我更喜欢使用与现在相同的基本结构,但如果不能做到那就没问题。这段代码在buttonlistener类中,如果有帮助的话。

4 个答案:

答案 0 :(得分:1)

你看过Vector中的contains方法了吗? petList.contains(field1.getText())

答案 1 :(得分:0)

如果没有透露解决方案(从而没有给你机会发展你的技能),这里有一个提示!

你可以使用for-each循环。

http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

对于每次迭代,检查数组中当前位置的元素是否等于用户输入。

祝你好运!

答案 2 :(得分:0)

替换此

if(field1.getText().equals(""))

if (contains(vect, field1.getText()))

并提出以下方法:

private static boolean contains(Vector v, String s) {
     for (int i = 0; i < v.size(); ++i) {
         if (s.equals((String) v.elementAt(i))) {
            return true;
         }
     }
     return false;
}

答案 3 :(得分:0)

如果我的猜测是正确的,你在行petList.add(j,input);中得到的数组索引超出范围错误而不是指定索引,为什么不在for循环之后使用petList.add(input);