[英]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.