Pereiti prie turinio

Java String vertimas į Float ir masyvo null reikšmės


Rekomenduojami pranešimai

Sveiki,

 

Turiu bėdą su Java namų darbais.

 

Situacija tokia, kad turiu du TextArea laukus, kuriuose suvedami skaičiai (Float tipo), turiu dvi knopkes (viena sudeda vieno laukelio reikšmes su kito atitinkamom reikšmėm, kita jas sudaugina). Viskas kaip ir aišku, tačiau, nusiskaitau duomenis kaip string. Skaidau stringą į masyvą (kiekviena eilutė atskiras float kintamasis masyve) ir konvertuoju į float ir bandau sudaugint. Deja ties vertimu į Float stringu (meta klaidas). Bandžiau daug įvairių būdų, goolinau, vistiek nieko iš to nesigavo. Esu šiektiek pasimetęs, dėl to reiktų uždarbiečių pagalbos.

 

Programos kodas: http://pastebin.com/SnADxMDB

 

Kaip matot yra išbandyti du būdai

pirmasARRflt[i] = Float.valueOf(pirmasARR[i].trim()).floatValue();

Tiek

antrasARRflt[i] = Float.parseFloat(antrasARR[i]);

 

Nei vienas nei kitas nesuveikia ir nieko nesigauna. Klaida:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at skaicuotuvas.Skaicuotuvas$Pirmas.actionPerformed(Skaicuotuvas.java:61)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

 

Kaip suprantu kažkas su null reikšmėm numatytosiom. Jei nenustatau jų, o tiesiog kuriu masyvą gaunu klaidą

variable XXX might not have been initialized

 

Reiktų, kad kas patartų kokį sprendimą čia priimt. ;/

Redagavo sanis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

1. Siūlau naudoti double, o ne float. Tada gali naudoti Double.parseDouble(String);

2. Reiktų parse'inimą apskliausti su try, catch blocku :)

3. Ar neturėtum initializuodamas ar kur nors kitur, apspręsti, koks bus masyvo dydis? Toks tas gyvenimas, kad masyvas turi turėti nustatytą dydį. Arba naudok ArrayList<>.

Redagavo Satisfaction
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gal ir viskas gerai su float'ais, tiesiog aš taip asmeniškai manau, kad double patogiau :)

 

Viską, manau, greičiausia būtų į ArrayList<> perdaryti, kadangi visų .length negalėsi atlikti su masyvais taip kaip nori :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Planas su ArrayList neišdegė.

 

http://pastebin.com/xCEFAFsb

 

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - variable pirmasARRflt might not have been initialized

at skaicuotuvas.Skaicuotuvas$Pirmas.actionPerformed(Skaicuotuvas.java:63)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)

at java.awt.Component.processMouseEvent(Component.java:6505)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)

at java.awt.Component.processEvent(Component.java:6270)

at java.awt.Container.processEvent(Container.java:2229)

at java.awt.Component.dispatchEventImpl(Component.java:4861)

at java.awt.Container.dispatchEventImpl(Container.java:2287)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)

at java.awt.Container.dispatchEventImpl(Container.java:2273)

at java.awt.Window.dispatchEventImpl(Window.java:2719)

at java.awt.Component.dispatchEvent(Component.java:4687)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)

at java.awt.EventQueue.access$200(EventQueue.java:103)

at java.awt.EventQueue$3.run(EventQueue.java:682)

at java.awt.EventQueue$3.run(EventQueue.java:680)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)

at java.awt.EventQueue$4.run(EventQueue.java:696)

at java.awt.EventQueue$4.run(EventQueue.java:694)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

Jei defaultu nustatau null meta tą patį š ką pirmam poste aprašiau ;/

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...