Cześć :)
Staram się napisać program który będzie liczył mi powtórzenia wpisane przez użytkownika.
Np. zostanie wpisane:
ala
kot
ma
ala
kot
To program wyświetli: ala - 2, kot - 2, ma - 1.
Napisałem, jednak działa to w ten sposób, że gdy wpiszę
test
test
test
test2
test2
to wyświetla test - 3, test2 - 1, test2 - 1.
Spróbowałem to zrobić przerywając pętlę for ale to nic nie dało..
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class zabawa_tablicami {
public static void main(String[] args) {
ArrayList<String> ar_nazwa = new ArrayList<String>();
ArrayList<Integer> ar_ilosc = new ArrayList<Integer>();
String ciag = "";
int ilosc = 0;
int rozmiar = 0;
while ((ciag = JOptionPane
.showInputDialog("Podaj dowolony ciąg znaków")) != null) {
rozmiar = ar_nazwa.size();
if (rozmiar == 0) {
ar_nazwa.add(ciag);
ar_ilosc.add(1);
System.out.println("Pierwszy wpis");
} else {
for (int i = 0; i < rozmiar; i++) {
if (ar_nazwa.get(i).equals(ciag)) {
ilosc = (int) ar_ilosc.get(i);
ar_ilosc.set(i, ilosc + 1);
System.out.println("powtórzenie");
break;
}
if (ar_nazwa.get(i).equals(ciag) == false) {
ar_nazwa.add(ciag);
ar_ilosc.add(1);
break;
}
}
}
}
System.out.println(ar_nazwa.size());
System.out.println(ar_ilosc.size());
for (int i = 0; i < ar_nazwa.size(); i++) {
System.out.println(ar_nazwa.get(i) + " występuje "
+ ar_ilosc.get(i) + " raz(y)");
// System.out.println(ar_nazwa.get(i));
}
}
}