Java Academy · Lektion

Parsa och valueOf

Konvertera strängar till tal

Lektion 3 av 413 steg

Parsa och valueOf är en gratis lektion i Java Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Java Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Java Academy innehåller totalt 4 lektioner.

Text till tal

Användarinmatning och filer kommer in som String-text. För att utföra beräkningar måste Ni konvertera dessa strängar till tal.

Wrapperklasser tillhandahåller två grupper av metoder för detta: parseXxx returnerar en primitiv typ och valueOf returnerar ett wrapperobjekt.

parseInt returnerar en primitiv typ

Integer.parseInt tar en sträng och returnerar ett vanligt int. Detta är den vanligaste metoden för parsning.

public class Main {
    public static void main(String[] args) {
        int n = Integer.parseInt("123");
        System.out.println(n + 1);
    }
}

valueOf returnerar en wrapper

Integer.valueOf tar en sträng och returnerar i stället ett Integer-objekt. Det är praktiskt när Ni behöver en wrapper direkt, till exempel för att lägga in den i en samling.

public class Main {
    public static void main(String[] args) {
        Integer boxed = Integer.valueOf("456");
        System.out.println(boxed);
    }
}

Parsa decimaltal

Använd Double.parseDouble för text som innehåller flyttal. Den hanterar värden med decimaltecken och även vetenskaplig notation.

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

Parsa andra typer

Varje numerisk wrapper har en parse-metod: Long.parseLong, Double.parseDouble, Float.parseFloat, Short.parseShort och Byte.parseByte.

public class Main {
    public static void main(String[] args) {
        long big = Long.parseLong("9000000000");
        System.out.println(big);
    }
}

Parsa booleska värden

Boolean.parseBoolean returnerar true endast när texten är lika med "true" utan hänsyn till skiftläge. Alla andra strängar, inklusive null, returnerar false.

public class Main {
    public static void main(String[] args) {
        System.out.println(Boolean.parseBoolean("true"));
        System.out.println(Boolean.parseBoolean("TRUE"));
        System.out.println(Boolean.parseBoolean("yes"));
    }
}

Parsa i olika baser

Integer.parseInt accepterar ett valfritt radixargument. Om Ni skickar in 2 läses talet som binärt, och med 16 läses det som hexadecimalt.

public class Main {
    public static void main(String[] args) {
        int binary = Integer.parseInt("1010", 2);
        int hex = Integer.parseInt("ff", 16);
        System.out.println(binary);
        System.out.println(hex);
    }
}

Felaktig indata utlöser ett undantag

Om strängen inte är ett giltigt tal utlöser parsningen ett NumberFormatException. Ni bör omge riskfyllda parsningar med ett try-catch-block.

public class Main {
    public static void main(String[] args) {
        try {
            int n = Integer.parseInt("hello");
            System.out.println(n);
        } catch (NumberFormatException e) {
            System.out.println("Not a number!");
        }
    }
}

Se upp med blanksteg

Parsning tolererar inte omgivande blanksteg. Integer.parseInt(" 5 ") utlöser ett undantag.

Anropa alltid trim() eller strip() på användarinmatning först.

public class Main {
    public static void main(String[] args) {
        String raw = "  42  ";
        int n = Integer.parseInt(raw.trim());
        System.out.println(n);
    }
}

Tal tillbaka till text

För att gå åt andra hållet använder Ni String.valueOf eller Integer.toString. Båda omvandlar ett tal till dess textform.

public class Main {
    public static void main(String[] args) {
        String text = Integer.toString(789);
        String text2 = String.valueOf(3.14);
        System.out.println(text.length());
        System.out.println(text2);
    }
}

parseXxx jämfört med valueOf

Kom ihåg regeln: parseInt ger en primitiv int, medan valueOf ger ett Integer-objekt. Välj utifrån om Ni behöver en primitiv typ eller en wrapper.

Snabbkontroll

Testa vad Ni har lärt Er om parsning.

Sammanfattning

Ni har lärt er att konvertera mellan strängar och tal:

  • parseInt, parseDouble och motsvarande metoder returnerar primitiva typer
  • valueOf returnerar wrapperobjekt
  • Felaktig indata utlöser NumberFormatException, så trimma indata och fånga undantaget
  • parseInt kan läsa andra baser med ett radixargument
  • Använd toString eller String.valueOf för att gå tillbaka till text
Gratis att börja

Lär dig Java med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
104
Lektioner
374

Vanliga frågor

Är lektionen ”Parsa och valueOf” gratis?

Ja – hela texten till ”Parsa och valueOf” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Java Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Java Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Parsa och valueOf”?

Konvertera strängar till tal Ni övar på Java Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Java Academy?

Du behöver inga förkunskaper. Utbildningen i Java Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Parsa och valueOf”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Java Academy-lektionen?

Ja. Varje Java Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Primitiva typer jämfört med wrapper-typer
  2. Autoboxning och unboxing
  3. Parsa och valueOf
  4. Fallgropar med autoboxning
← Tillbaka till Java Academy