Java Academy · Lektion

Fortolkning af tal fra input

Konvertér tekst til tal.

Lektion 3 af 413 trin

Fortolkning af tal fra input er en gratis Java Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Java Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Java Academy-kurset indeholder 4 lektioner i alt.

Linjer er altid strenge

readLine() giver dig altid en String, selv når brugeren skriver 42. Hvis du vil regne med teksten, skal du fortolke den som et tal.

Java har hjælpermetoder som Integer.parseInt og Double.parseDouble til netop dette.

Integer.parseInt

Integer.parseInt(String) omdanner tekst som "42" til værdien 42 af typen int.

Når tallet er fortolket, kan du lægge til, gange eller sammenligne det som ethvert andet tal.

String text = "42";
int n = Integer.parseInt(text);
System.out.println(n + 1);

Et kørbart eksempel på fortolkning

Her er et komplet, kørbart program, der fortolker en tekststreng, som er angivet direkte i koden, og fordobler den.

Det læser ikke fra System.in, så det kører med det samme og udskriver resultatet.

public class Main {
    public static void main(String[] args) {
        String text = "21";
        int n = Integer.parseInt(text);
        System.out.println("Doubled: " + (n * 2));
    }
}

Læsning og derefter fortolkning

Det typiske mønster er: læs en linje, og fortolk den derefter. Dette program læser ét tal fra konsollen og udskriver dets kvadrat.

Fordi det venter på System.in, kan det ikke køres automatisk her, men det er det almindelige mønster.

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 fortolkning

Overflødige mellemrum ødelægger fortolkningen. Integer.parseInt(" 42 ") kaster en fejl, men Integer.parseInt(" 42 ".trim()) virker.

Det er en god vane at kalde trim() på linjen, før du fortolker den.

String raw = "  7  ";
int n = Integer.parseInt(raw.trim());
System.out.println(n);

Fortolkning af decimaltal

Brug Double.parseDouble til decimaltal. Den omdanner tekst som "3.14" til en double.

Der findes også Long.parseLong til meget store heltal, der overskrider området for int.

public class Main {
    public static void main(String[] args) {
        double pi = Double.parseDouble("3.14");
        System.out.println(pi * 2);
    }
}

Flere tal på én linje

Ofte indeholder en linje flere tal adskilt af mellemrum, f.eks. "10 20 30". Brug split(" ") til at opdele den i et array af String-elementer.

Fortolk derefter hvert element for sig.

String[] parts = "10 20 30".split(" ");
int a = Integer.parseInt(parts[0]);
int b = Integer.parseInt(parts[1]);
System.out.println(a + b);

Summering af opsplittede tal

Dette kørbare program opdeler en linje og lægger alle tallene sammen i en løkke.

Strengen er angivet direkte i koden, så programmet kan køre uden inddata, men erstat den med br.readLine() ved rigtig brug 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);
    }
}

Ugyldige inddata udløser fejl

Hvis teksten ikke er et gyldigt tal — f.eks. "hello" eller en tom streng — kaster parseInt en NumberFormatException.

Du kan beskytte dig mod dette med try/catch, så programmet ikke går ned ved ugyldige inddata.

try {
    int n = Integer.parseInt("hello");
} catch (NumberFormatException e) {
    System.out.println("Not a number!");
}

Sikker fortolkning i praksis

Her er et kørbart program, der håndterer ugyldige inddata på en hensynsfuld måde i stedet for at gå ned.

catch-blokken udskriver en venlig meddelelse, når teksten ikke kan omdannes til et tal.

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);
        }
    }
}

Tjekliste for fortolkning

Når du omdanner inddata til tal:

  • Integer.parseInt til heltal og Double.parseDouble til decimaltal.
  • Fjern først overflødige mellemrum med trim().
  • Brug split(" ") til flere tal på en linje.
  • Pak det ind i try/catch som sikkerhedsforanstaltning.

Hurtigt tjek

Overvej, hvad der sker, når fortolkningen mislykkes.

Opsamling

Du lærte, at inputlinjer er strenge, der fortolkes med Integer.parseInt eller Double.parseDouble. Du brugte trim() og split(" ") og fangede NumberFormatException som en sikkerhedsforanstaltning.

Næste emne: Sådan lukker du dine strømme korrekt.

Gratis at komme i gang

Lær Java med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
104
Lektioner
374

Ofte stillede spørgsmål

Er lektionen “Fortolkning af tal fra input” gratis?

Ja — hele teksten til “Fortolkning af tal fra input” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Java Academy-kurset, skal du opgradere til CoddyKit PRO. Java Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Fortolkning af tal fra input”?

Konvertér tekst til tal. Du øver dig i Java Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Java Academy?

Der kræves ingen tidligere erfaring. Java Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Fortolkning af tal fra input”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Java Academy-lektion?

Ja. Alle Java Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Hvorfor BufferedReader
  2. Læsning af linjer
  3. Fortolkning af tal fra input
  4. Sikker lukning af streams
← Tilbage til Java Academy