Hirdetés

Új hozzászólás Aktív témák

  • bpx
    őstag

    Üdv. Szerintetek ezzel a fv-el mi a gond? A feladata az lenne, hogy a str paraméterként kapott Stringet adott formátumra varázsolja. Van egy static int hossz változo, amely szabályozza a formátum hosszát. 2 dolgot kellene csinálnia: ha a kapott str hossza kisebb mint hossz, akkor feltölti szóközökkel, hogy az str hossza hossz érték legyen. A másik eset, hogy amikor a kapott str hossza nagyobb mint hossz, akkor levágja a str-t hossz-3 -ig és a végére fűz "..."-stringet. Na én ezt így írtam meg, de valamiért nem egészen jól működik:

    public static String levag(String str) {
    if (str.length() < hossz) {
    for (int i = 0; i < hossz - str.length(); i++) {
    str += " ";
    }
    }
    if (str.length() > hossz) {
    char[] sv = str.toCharArray();
    str = "";
    for (int i = 0; i < hossz - 3; i++) {
    str += sv[i];
    }

    str += "...";
    }
    return str;
    }

    ötlet?

    a for ciklusban levő feltétel minden iterációban kiértékelődik

    tehát az első esetben a ciklus törzsében növeled az str hosszát a hozzáadott space-szel, és utána már arra a stringre határozza meg az str.length()-et a következő iterációban, ami 1-el több, mint eredetileg volt
    így két irányból "fogy" a hozzáadandó space-ek száma és kb. feleannyi hosszig fogja rakosgatni a space-eket az elvárt helyett

    ciklus előtt tárold le a kapott string hosszát egy változóban, és azt tedd be a vizsgálathoz

    szerk: húha belezavarodtam, lehet mégse úgy kell, mindjárt kipróbálom :D

Új hozzászólás Aktív témák