簡體   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