Cześć. Poniżej treść zadania.
Stworzyć klasę Appender z polem String src (źródłwoy napis) i dwoma konstruktorami:
public Appender() - inicjuje src napisem pustym
public Appender(String s) - inicjuje src napisem s.
W klasie zdefiniować metodę Appender append(String app, int n), która do źródłowego napisu src dołaczan-razy powielony napis reprezentowany przez app.
Zapewnić zgłaszanie wyjątków gdy wystąpią błędy w podawanych argumentach konstruktora i/lub metody append.
Przyklad - poniższy kod:
public static void main(String[] args) { Appender ap = new Appender("Ala"); ap.append(" ma kota", 3).append( " i psa", 2); System.out.println(ap); ap.append(" ojej", 3); System.out.println(ap); }
winien wyprowadzić na konsolę:
Ala ma kota ma kota ma kota i psa i psa
Ala ma kota ma kota ma kota i psa i psa ojej ojej ojej
Pomoc:
- zadanie można rozwiązać korzystając z operatora konkatenacji łańcuchów znakowych.
- n-krotne powtórzenie instrukcji ins można uzyskac przez while (n-- >0) ins;
- jako klasę wyjątku dla sygnalizacji błędnych argumentów najlepiej wybrać IllegalArgumentException
Problem polega na wyświetleniu wymaganego w treści zadania napisu. Moja metoda nie wyświetla tylko " i psa i psa".
Appender append(String app, int n){
Appender pomoc = new Appender(napis);
while(n-- > 0){
napis = napis + app;
}
return pomoc;
}
Ale jeśli zrobię:
public static void main(String[] args) {
Appender ap = new Appender("Ala");
ap.append(" ma kota", 3);
ap.append( " i psa", 2);
System.out.println(ap);
ap.append(" ojej", 3);
System.out.println(ap);
Wszystko działa OK.
Z wyjątkiem też poproszę o pomoc bo tego nie ogarniam.