Lukujen jäsentäminen syötteestä
Muunna teksti luvuiksi.
Lukujen jäsentäminen syötteestä on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 4 oppituntia.
Rivit ovat aina merkkijonoja
readLine() antaa aina String-olion, vaikka käyttäjä kirjoittaisi 42. Jotta tekstillä voidaan laskea, se on jäsennettävä luvuksi.
Java tarjoaa tätä varten apumetodeja, kuten Integer.parseInt ja Double.parseDouble.
Integer.parseInt
Integer.parseInt(String) muuntaa tekstin, kuten "42", int-arvoksi 42.
Kun arvo on jäsennetty, sitä voi summata, kertoa tai verrata kuten mitä tahansa lukua.
String text = "42";
int n = Integer.parseInt(text);
System.out.println(n + 1);Suoritettava jäsentämisesimerkki
Tässä on kokonainen suoritettava ohjelma, joka jäsentää kiinteästi määritetyn merkkijonon ja kaksinkertaistaa sen.
Ohjelma ei lue System.in-virrasta, joten se käynnistyy heti ja tulostaa tuloksen.
public class Main {
public static void main(String[] args) {
String text = "21";
int n = Integer.parseInt(text);
System.out.println("Doubled: " + (n * 2));
}
}Lukeminen ja sen jälkeen jäsentäminen
Todellinen toimintamalli on seuraava: lukekaa rivi ja jäsentäkää se sitten. Tämä ohjelma lukee konsolista yhden luvun ja tulostaa sen neliön.
Koska ohjelma odottaa System.in-virrasta syötettä, sitä ei voi suorittaa täällä automaattisesti, mutta kyseessä on jokapäiväisessä ohjelmoinnissa käytettävä malli.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
System.out.println("Square: " + (n * n));
}
}Poistakaa tyhjeet ennen jäsentämistä
Ylimääräiset välilyönnit estävät jäsentämisen. Integer.parseInt(" 42 ") heittää virheen, mutta Integer.parseInt(" 42 ".trim()) toimii.
Hyvä käytäntö on kutsua trim()-metodia riville ennen sen jäsentämistä.
String raw = " 7 ";
int n = Integer.parseInt(raw.trim());
System.out.println(n);Desimaalien jäsentäminen
Desimaalilukuihin käytetään Double.parseDouble-metodia. Se muuntaa tekstin, kuten "3.14", double-arvoksi.
Lisäksi Long.parseLong sopii hyvin suurille kokonaisluvuille, jotka ylittävät int-tyypin alueen.
public class Main {
public static void main(String[] args) {
double pi = Double.parseDouble("3.14");
System.out.println(pi * 2);
}
}Useita lukuja samalla rivillä
Rivillä on usein useita välilyönneillä erotettuja lukuja, kuten "10 20 30". Jakakaa rivi split(" ")-metodilla String-alkioiden taulukoksi.
Jäsentäkää sitten jokainen alkio erikseen.
String[] parts = "10 20 30".split(" ");
int a = Integer.parseInt(parts[0]);
int b = Integer.parseInt(parts[1]);
System.out.println(a + b);Jaettujen lukujen summaaminen
Tämä suoritettava ohjelma jakaa rivin osiin ja laskee kaikkien lukujen summan silmukassa.
Merkkijono on määritetty suoraan ohjelmassa, joten se toimii ilman syötettä, mutta vaihtakaa tilalle br.readLine(), kun käytätte oikeaa konsolisyötettä.
public class Main {
public static void main(String[] args) {
String line = "5 8 2 10";
String[] parts = line.split(" ");
int sum = 0;
for (String p : parts) {
sum += Integer.parseInt(p);
}
System.out.println("Sum: " + sum);
}
}Virheellinen syöte aiheuttaa poikkeuksen
Jos teksti ei ole kelvollinen luku — esimerkiksi "hello" tai tyhjä merkkijono — parseInt heittää NumberFormatException-poikkeuksen.
Voitte varautua tähän try/catch-rakenteella, jotta ohjelma ei kaadu virheelliseen syötteeseen.
try {
int n = Integer.parseInt("hello");
} catch (NumberFormatException e) {
System.out.println("Not a number!");
}Turvallinen jäsentäminen käytännössä
Tässä on suoritettava ohjelma, joka käsittelee virheellisen syötteen hallitusti kaatumisen sijaan.
catch-lohko tulostaa ystävällisen viestin, kun tekstiä ei voi muuntaa luvuksi.
public class Main {
public static void main(String[] args) {
String input = "12x";
try {
int n = Integer.parseInt(input);
System.out.println(n);
} catch (NumberFormatException e) {
System.out.println("Invalid number: " + input);
}
}
}Jäsentämisen tarkistuslista
Kun muutatte syötettä luvuiksi:
Integer.parseIntkokonaisluvuille jaDouble.parseDoubledesimaaliluvuille.- Poistakaa ylimääräiset välilyönnit ensin
trim()-metodilla. - Käyttäkää
split(" ")-metodia, kun rivillä on useita lukuja. - Ympäröikää koodi
try/catch-rakenteella turvallisuuden vuoksi.
Pikatarkistus
Miettikää, mitä tapahtuu, kun jäsentäminen epäonnistuu.
Kertaus
Opitte, että syöterivit ovat merkkijonoja, jotka jäsennetään Integer.parseInt- tai Double.parseDouble-metodilla. Käytitte trim()- ja split(" ")-metodeja sekä käsittelitte NumberFormatException-poikkeuksen turvallisuuden vuoksi.
Seuraavaksi: tietovirtojen oikeaoppinen sulkeminen.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Lukujen jäsentäminen syötteestä” ilmainen?
Kyllä – oppitunnin ”Lukujen jäsentäminen syötteestä” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Lukujen jäsentäminen syötteestä”?
Muunna teksti luvuiksi. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Lukujen jäsentäminen syötteestä”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Miksi BufferedReader
- Rivien lukeminen
- Lukujen jäsentäminen syötteestä
- Virtojen turvallinen sulkeminen