Java 有人能帮我查一下学校的密码吗?

Java 有人能帮我查一下学校的密码吗?,java,string,for-loop,Java,String,For Loop,这是我的代码: for (Article a : articles) { boxNumber = magazine.getFfd().searchArticleInBox(a); if (boxNumber >= 3) { text = text + "Place box " + boxNumber + "\n"; } } textArea.append(text); 它确实有效,我得到: Place box 3 Place box 3 Place box 3

这是我的代码:

for (Article a : articles) {
  boxNumber = magazine.getFfd().searchArticleInBox(a);
  if (boxNumber >= 3) {
    text = text + "Place box " + boxNumber + "\n";
  }   
} 
textArea.append(text);
它确实有效,我得到:

Place box 3
Place box 3
Place box 3
Place box 3
Place box 4
Place box 4
这不是我想要的。我希望有人能告诉我,当数字改变时,我是如何得到它的,所以我得到:

Place box 3
Place box 4

保留最后一个值并对照它进行检查:

int last = 0;
for (Artikel a : artikelen) {
    doosnummer = magazijn.getFfd().zoekArtikelInDoos(a);
    if (doosnummer >= 3) {
        if (last != doosnummer) {
            last = doosnummer;
            text = text + "Plaats doos " + doosnummer + "\n";
        }
    }
}
textArea.append(text);
请注意,将
String
s附加到单个
StringBuilder
对象,而不是使用持续创建新
String
对象的
String
串联,效率更高:

StringBuilder text = new StringBuilder();
int last = 0;
for (Artikel a : artikelen) {
    doosnummer = magazijn.getFfd().zoekArtikelInDoos(a);
    if (doosnummer >= 3) {
        if (last != doosnummer) {
            last = doosnummer;
            text.append("Plaats doos ");
            text.append(doosnummer);
            text.append("\n");
        }
    }
}
textArea.append(text.toString());

您必须记住旧号码,并且仅在其更改时打印:

int oldDoosnummer =0;

for (Artikel a : artikelen){
            doosnummer = magazijn.getFfd().zoekArtikelInDoos(a);
            if (doosnummer >= 3 && doosnummer != oldDoosnummer){
                text = text + "Plaats doos " + doosnummer + "\n";
                oldDoosnummer = doosnummer;
            }   
        } textArea.append(text);

试试这个:

ArrayList<Integer> oldOccurrenceArrayList = new ArrayList<>();

for (Artikel a : artikelen) {
    doosnummer = magazijn.getFfd().zoekArtikelInDoos(a);

    if (doosnummer >= 3 && !oldOccurrenceArrayList.contains(doosnummer)) 
    {
        text = text + "Plaats doos " + doosnummer + "\n";
        oldOccurrenceArrayList.add(doosnummer);
    }
}
textArea.append(text);
ArrayList oldOccurrenceArrayList=new ArrayList();
对于(Artikel a:artikelen){
doosnmmer=magazijn.getFfd().zoekArtikelInDoos(a);
如果(Doosummer>=3&&!oldOccurrenceArrayList.contains(Doosummer))
{
text=text+“Plaats doos”+doosnmmer+“\n”;
oldOccurrenceArrayList.add(末日杀手);
}
}
textArea.append(文本);
使用已传递的所有值创建一个
ArrayList
。这样你永远不会得到任何双值。

试试这个

for (Artikel a : artikelen) {
      doosnummer = magazijn.getFfd().zoekArtikelInDoos(a);
      String check = "Plaats doos " + doosnummer;
      if (doosnummer >= 3 && text.contains(check)==false) {
       text = text + check + "\n";
       }   
      } 
     textArea.append(text);

存储最后一个数字并测试
doosnmmer
是否相同,如果不相同,则打印出来并更新最后一个数字的值。您可以在代码中使用英语单词吗?这使代码对我们来说更容易理解。@ThomasBöhm对这个琐碎的代码不重要。3之后,4会再次出现3的可能性吗?是不是太过分了?抓不住你??这个实际上更好,因为我们不知道列表是否排序。