Konverzia reťazca Java na dvojnásobok
1. Prehľad
V tomto výučbe sa budeme venovať mnohým spôsobom prevodu a String do a dvojitý v Jave.
2. Double.parseDouble
Môžeme previesť a String do a dvojitý pomocou Dvojitý.parseDouble metóda:
assertEquals (1,23, Double.parseDouble ("1,23"), 0,000001);
3. Double.valueOf
Podobne môžeme previesť a String do škatule Dvojitý pomocou Double.valueOf metóda:
assertEquals (1,23, Double.valueOf ("1,23"), 0,000001);
Upozorňujeme, že vrátená hodnota je Double.valueOf je škatuľka Dvojitý. Od verzie Java 5 to bolo zabalené Dvojitý je prevedený kompilátorom na primitívny dvojitý kde treba.
Všeobecne, mali by sme uprednostňovať Double.parseDouble pretože nevyžaduje, aby kompilátor vykonal automatické rozbalenie.
4. DecimalFormat.parse
Keď String predstavujúci a dvojitý má zložitejší formát, môžeme použiť a DecimalFormat.
Napríklad môžeme previesť desatinnú hodnotu meny bez odstránenia nečíselných symbolov:
Formát DecimalFormat = nový DecimalFormat ("\ u00A4 #, ## 0,00"); format.setParseBigDecimal (true); BigDecimal decimal = (BigDecimal) format.parse ("- 1 000,57 dolárov"); assertEquals (-1000,57, decimal.doubleValue (), 0,000001);
Podobne ako v Double.valueOf, DecimalFormat.parse metóda vracia a Číslo, ktorú môžeme previesť na primitív dvojitý pomocou doubleValue metóda. Ďalej používame setParseBigDecimal metóda na vynútenie DecimalFormat.parse vrátiť sa a BigDecimal.
Zvyčajne DecimalFormat je pokročilejšie, ako požadujeme, mali by sme preto zvýhodniť Double.parseDouble alebo Double.valueOf namiesto toho.
Ak sa chcete dozvedieť viac o DecimalFormat, pozrite si praktického sprievodcu DecimalFormat.
5. Neplatné konverzie
Java poskytuje jednotné rozhranie pre prácu s neplatnými číslami Strings.
Je pozoruhodné, Double.parseDouble, Double.valueOfa DecimalFormat.parse hodiť a NullPointerException keď prechádzame nulový.
Podobne, Double.parseDouble a Double.valueOf hodiť a NumberFormatException keď odovzdáme neplatný reťazec, ktorý sa nedá analyzovať na a dvojitý (ako napr &).
Nakoniec DecimalFormat.parse hodí a ParseException keď minieme neplatný String.
6. Vyvarujte sa zneužitých konverzií
Pred programom Java 9 sme mohli vytvoriť škatuľu Dvojitý od a String vytvorením inštancie a Dvojitý:
nový Double („1,23“);
Od verzie 9 Java túto metódu oficiálne zastarala.
7. Záver
Záverom možno povedať, že Java nám poskytuje niekoľko metód prevodu Strings do dvojitý hodnoty.
Všeobecne odporúčame použitie Double.parseDouble pokiaľ nie je v škatuli Dvojitý je potrebné.
Zdrojový kód tohto článku vrátane príkladov nájdete na GitHub.