繁体   English   中英

有人可以帮我提供学校代码吗?

[英]can someone help me with this code for school?

这是我的代码:

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追加到单个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 这样,您永远不会获得任何双精度值。

尝试这个

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM