import sk.upjs.jpaz2.Turtle;
public class Znakarka extends Turtle {
/**
* Overi, ci retazec je ciselny, t.j. sklada sa len zo znakov cifier
*
* @param s
* retazec, ktory ideme analyzovat
* @return true, ak je to ciselny retazec
*/
public boolean jeCiselny(String s) {
// Specialne osetrime pripad, kedy je referencia na zadany retazec null
if (s == null) {
return false;
}
// Prechadzame vsetky platne indexy v retazci (hodnota premennej
// i=0..LENGTH-1)
for (int i = 0; i < s.length(); i++) {
// Vyberieme znak na indexe i
char znak = s.charAt(i);
// Ak vybrany znak nie je znakom cifry, tak ihned koncime s false
if (!(('0' <= znak) && (znak <= '9'))) {
return false;
}
}
// Ak sme sa dostali az sem, znamena to, ze return vo for-e nebol
// aplikovany a teda nenasli sme ziaden znak, ktory by nebol znakom
// cifry
return true;
}
/**
* Zduplikuje retazec zadany pocet krat.
*
* @param s
* retazec, ktory ideme duplikovat
* @param pocet
* kolko krat sa ma retazec duplikovat
* @return referencia na novovytvoreny retazec obsahujuci zduplikovanie
* zadaneho retazca urceny pocet krat
*/
public String duplikuj(String s, int pocet) {
// Specialne osetrime pripad, kedy je referencia na zadany retazec null
if (s == null)
return null;
// Referencia na objekt, ktory je medzivysledkom behu metody.
// Na zaciatku referencuje prazdy retazec.
String vysledok = new String("");
// V kazdom kroku retazec, ktory je aktualnym medzivysledkom poziadame,
// aby vytvoril novy retazec, ktory ma rovnaky obsah ako on sam s tym,
// ze na koniec sa prida obsah retazca referencovaneho z s. Vytvoreny
// retazec sa stane novym medzivysledkom behu metody.
for (int i = 0; i < pocet; i++) {
vysledok = vysledok.concat(s);
}
// Vratime posledny medzivysledok
return vysledok;
}
// To iste ako metoda duplikuj, akurat je implementovana pomocou "skratiek"
public String duplikuj2(String s, int pocet) {
if (s == null)
return null;
String vysledok = "";
for (int i = 0; i < pocet; i++) {
vysledok = vysledok + s;
}
return vysledok;
}
/**
* Otoci retazec
*
* @param s
* referencia na retazec, podla ktoreho chceme vyrobit obrateny
* retazec
* @return referencia na novovytvoreny retazec, ktoreho obsah je obrateny
* obsah zadaneho retazca
*/
public String obratRetazec(String s) {
// Specialne osetrime pripad, kedy je referencia na zadany retazec null
if (s == null)
return null;
// Referencia na medzivysledkovy retazec
// String vysledok = ""; je to skratka pre
// String vysledok = new String("");
String vysledok = "";
// Strategia: postupne budujeme vysledny retazec tak, ze nan prilepujeme
// znaky retazca s od konca, t.j. zaciname indexom LENGTH-1 a koncime s
// indexom 0
for (int i = s.length() - 1; i >= 0; i--) {
// Vytvorime novy objekt triedy String prilepenim znaku na indexe i
// na koniec retazca referencovaneho z premennej vysledok.
// Referenciu na novovytvoreny retazec ulozime do premennej
// vysledok
vysledok = vysledok + s.charAt(i);
}
// Vratime vysledok
return vysledok;
}
/**
* Otoci retazec
*
* @param s
* referencia na retazec, podla ktoreho chceme vyrobit obrateny
* retazec
* @return referencia na novovytvoreny retazec, ktoreho obsah je obrateny
* obsah zadaneho retazca
*/
public String obratRetazec2(String s) {
// Specialne osetrime pripad, kedy je referencia na zadany retazec null
if (s == null)
return null;
// Referencia na medzivysledkovy retazec
// String vysledok = ""; je to skratka pre
// String vysledok = new String("");
String vysledok = "";
// V kazdom kroku vytvorime novy retazec, ktory sa od predchadzajuceho
// lisi tym, ze na zaciatok retazca pridame znak retazca s na indexe i
for (int i = 0; i < s.length(); i++) {
vysledok = s.charAt(i) + vysledok;
}
// Vratime vysledok
return vysledok;
}
}