Typicky v a grafické užívateľské rozhranie, budú existovať textové polia, ktoré očakávajú, že používateľ zadá číselnú hodnotu. Táto hodnota čísla skončí v a povrázok objekt, ktorý naozaj nepomôže vášmu programu, ak chcete urobiť aritmetiku. Našťastie existujú triedy wrapperov, ktoré poskytujú metódy na konverziu týchto hodnôt String na čísla a trieda String má spôsob, ako ich znova previesť.
Triedy obalov
primitívne typy údajov ktoré sa zaoberajú číslami (t. j. bajt, int, double, float, long a short), všetky majú ekvivalenty triedy. Tieto triedy sa nazývajú triedy wrapperov, pretože majú primitívny dátový typ a obklopujú ho funkčnosťou triedy. Napríklad trieda Double bude mať ako svoje dáta dvojitú hodnotu a bude poskytovať metódy na manipuláciu s touto hodnotou.
Všetky tieto triedy obalov majú metódu nazývanú valueOf. Táto metóda berie String ako argument a vracia inštanciu triedy wrapper. Napríklad povedzme, že máme reťazec s hodnotou desať:
Číslo reťazca = "10";
Mať toto číslo ako reťazec nie je pre nás zbytočné, preto ho pomocou triedy Integer prevádzame na objekt typu Integer:
Celé číslo konvertovanéNumber = Integer.valueOf (číslo);
Teraz je možné číslo použiť ako číslo a nie ako reťazec:
convertNumber = convertNumber + 20;
Môžete tiež urobiť prevod priamo na primitívny typ údajov:
int convertNumber = Integer.valueOf (number) .intValue ();
Pre ostatné primitívne typy údajov stačí vložiť do správnej triedy obálky - Byte, Integer, Double, Float, Long Short.
Poznámka: Musíte sa ubezpečiť, že reťazec možno analyzovať na príslušný typ údajov. Ak to nie je možné, skončí sa chyba runtime. Napríklad, pokúsiť sa zakryť „desať“ do celého čísla:
Číslo reťazca = "desať";
int convertNumber = Integer.valueOf (number) .intValue ();
bude produkovať NumberFormatException, pretože kompilátor netuší, že „desať“ má byť 10.
Presnejšie rovnaká chyba sa vyskytne, ak zabudnete, že „int“ môže obsahovať iba celé čísla:
Číslo reťazca = "10,5";
int convertNumber = Integer.valueOf (number) .intValue ();
Kompilátor nebude skrátiť číslo, len si bude myslieť, že sa nezmestí do 'int' a že je čas hodiť NumberFormatException.
Konverzia čísel na reťazce
Ak chcete urobiť číslo na reťazec, postupujte rovnako ako vzorec triedy String. Ako argument môže brať ktorékoľvek z primitívnych čísel typu údajov a vytvoriť reťazec:
int numberTwenty = 20;
Konvertovaný reťazec = String.valueOf (numberTwenty);
ktorý dáva hodnotu „20“ ako hodnotu String co nvertted.
alebo môžete použiť metódu toString v ktorejkoľvek z tried obalov:
Konvertovaný reťazec = Integer.toString (numberTwenty);
Metóda toString je spoločná pre všetky typy objektov - väčšinou ide len o popis objektu. Pre triedy obalov je tento popis skutočná hodnota, ktorú obsahujú. V tomto smere je konverzia o niečo robustnejšia. Ak sa mala použiť trieda Double namiesto Integer:
Konvertovaný reťazec = Double.toString (numberTwenty);
výsledok by nespôsobil a chyba runtime. Prevedená premenná by obsahovala reťazec „20.0“.
Existuje aj jemnejší spôsob, ako prevádzať čísla, keď ste spájajúce reťazce. Ak sa má reťazec stavať takto:
String aboutDog = "Môj pes je" + čísloTvadsať + "rokov.";
konverzia int číslaTwenty sa uskutoční automaticky.