Analysere tall fra inndata
Konverter tekst til tall.
Analysere tall fra inndata er en gratis leksjon i Java Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Java Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Java Academy inneholder totalt 4 leksjoner.
Linjer er alltid strenger
readLine() gir deg alltid en String, selv når brukeren skriver 42. For å regne med verdien må du parse teksten til et tall.
Java har hjelpe-metoder som Integer.parseInt og Double.parseDouble som er laget nettopp for dette.
Integer.parseInt
Integer.parseInt(String) konverterer tekst som "42" til int-verdien 42.
Etter parsing kan du addere, multiplisere eller sammenligne verdien som ethvert annet tall.
String text = "42";
int n = Integer.parseInt(text);
System.out.println(n + 1);Et kjørbart parsing-eksempel
Her er et komplett, kjørbart program som parser en hardkodet streng og dobler den.
Det leser ikke fra System.in, så det kjører med én gang og skriver ut resultatet.
public class Main {
public static void main(String[] args) {
String text = "21";
int n = Integer.parseInt(text);
System.out.println("Doubled: " + (n * 2));
}
}Lesing og parsing
Det vanlige mønsteret er å lese en linje og deretter parse den. Dette programmet leser ett tall fra konsollen og skriver ut kvadratet av det.
Siden det venter på System.in, kan det ikke kjøres automatisk her, men dette er mønsteret du bruker til daglig.
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));
}
}Trim før parsing
Overflødige mellomrom ødelegger parsing. Integer.parseInt(" 42 ") kaster en feil, men Integer.parseInt(" 42 ".trim()) fungerer.
Det er en god vane å kalle trim() på linjen før du parser den.
String raw = " 7 ";
int n = Integer.parseInt(raw.trim());
System.out.println(n);Parsing av desimaltall
For desimaltall bruker du Double.parseDouble. Den gjør tekst som "3.14" om til en double.
Det finnes også Long.parseLong for svært store heltall som overskrider området til int.
public class Main {
public static void main(String[] args) {
double pi = Double.parseDouble("3.14");
System.out.println(pi * 2);
}
}Flere tall på én linje
Ofte inneholder en linje flere tall skilt med mellomrom, for eksempel "10 20 30". Bruk split(" ") for å dele den opp i et array med String-tokens.
Parser deretter hvert token for seg.
String[] parts = "10 20 30".split(" ");
int a = Integer.parseInt(parts[0]);
int b = Integer.parseInt(parts[1]);
System.out.println(a + b);Summere tall fra en oppdelt linje
Dette kjørbare programmet deler opp en linje og legger sammen alle tallene i en løkke.
Strengen er hardkodet slik at programmet kan kjøre uten inndata, men bytt den ut med br.readLine() når du skal lese fra konsollen.
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);
}
}Ugyldig inndata utløser et unntak
Hvis teksten ikke er et gyldig tall — for eksempel "hello" eller en tom streng — kaster parseInt et NumberFormatException-unntak.
Du kan håndtere dette med try/catch, slik at programmet ikke krasjer ved ugyldig inndata.
try {
int n = Integer.parseInt("hello");
} catch (NumberFormatException e) {
System.out.println("Not a number!");
}Sikker parsing i praksis
Her er et kjørbart program som håndterer ugyldig inndata på en god måte i stedet for å krasje.
catch-blokken skriver ut en vennlig melding når teksten ikke kan gjøres om til et tall.
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);
}
}
}Sjekkliste for parsing
Når du gjør inndata om til tall:
Integer.parseIntfor heltall ogDouble.parseDoublefor desimaltall.- Bruk
trim()for å fjerne overflødige mellomrom først. - Bruk
split(" ")for flere tall på samme linje. - Pakk inn i
try/catchfor sikkerhets skyld.
Kort kontroll
Tenk over hva som skjer når parsing mislykkes.
Oppsummering
Du lærte at inndatalinjer er strenger som parses med Integer.parseInt eller Double.parseDouble. Du brukte trim() og split(" "), og fanget opp NumberFormatException for å gjøre koden tryggere.
Neste: lukke strømmene på riktig måte.
Lær deg Java med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 104
- Leksjoner
- 374
Ofte stilte spørsmål
Er leksjonen «Analysere tall fra inndata» gratis?
Ja – hele teksten i «Analysere tall fra inndata» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Java Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Java Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Analysere tall fra inndata»?
Konverter tekst til tall. Du øver på Java Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Java Academy?
Ingen tidligere erfaring er nødvendig. Java Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Analysere tall fra inndata»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Java Academy-leksjonen?
Ja. Alle Java Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Hvorfor BufferedReader
- Lese linjer
- Analysere tall fra inndata
- Lukke strømmer trygt