我环路只检查数组,这使我的代码的第一个项目失败每次:我环路只检查第一阵列项目
String igitems = "IgnoredItems";
String items = getConfig().getString("IgnoredItems.itemid");
items = items + args[0] + ",";
String[] myarray = items.split(",");
for(String fitem : myarray) {
if(!fitem.equals(args[0])){
getConfig().set(igitems + ".itemid", items);
saveConfig();
reloadConfig();
sender.sendMessage(prefix + ChatColor.GREEN + "Added " + ChatColor.GOLD + args[0] + ChatColor.GREEN + " to ignore list.");
break;
} else {
sender.sendMessage(prefix + ChatColor.RED + "Item is already in the list");
break;
}
}
如果我添加system.out.print(myarray);
后String[] myarray = items.split(",");
它显示了整个阵列,这是正确的:
1:0
2:0
5:0
8:0
5:0
但是,当我添加system.out.print(fitem);
后for(String fitem : myarray){
它显示了从阵列(1:0)仅第一项至极让我的代码,除非它的第一个项目,几乎每一次失败。
对'if'和'else'部分中的'break'是否有意义? – manouti 2014-10-27 21:48:11
它应该只发现一次,如果它发现它,这就是为什么我打破它。 – ax752 2014-10-27 22:01:29
如果还有其他问题,你正在打破。因此,您正在检查第一个元素,并导致中断,即使它不相等。从'else'中删除中断 – 2014-10-27 22:07:27