基本上这就是我所拥有的:
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类中,如果有帮助的话。
答案 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);