Java Academy · Lektion

Bygga strängar med StringBuilder

Effektiv konkatenering

Lektion 2 av 413 steg

Bygga strängar med StringBuilder är en gratis lektion i Java Academy på CoddyKit. Detta är lektion 2 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.

En muterbar strängbyggare

StringBuilder är en muterbar sekvens av tecken. Till skillnad från String kan du ändra innehållet på plats, vilket gör det effektivt att bygga text.

Skapa en StringBuilder

Skapa en tom byggare med new StringBuilder(), eller skicka in starttext för att börja med ett innehåll.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        StringBuilder named = new StringBuilder("Hello");
        System.out.println("empty length: " + sb.length());
        System.out.println("named: " + named);
    }
}

Lägga till text

Metoden append lägger till innehåll i slutet. Den accepterar strängar, tal, tecken, booleska värden och mycket mer.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("Count: ");
        sb.append(5);
        sb.append(' ');
        sb.append(true);
        System.out.println(sb);
    }
}

Metodkedjning

append returnerar samma byggare, så anrop kan kedjas på ett smidigt sätt i ett enda uttryck.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("a").append("b").append("c").append(123);
        System.out.println(sb);
    }
}

Bygga i en loop

Det här är det huvudsakliga användningsområdet. Lägg till innehåll inuti en loop utan att skapa ett nytt objekt varje gång och konvertera sedan resultatet en gång i slutet.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 10; i++) {
            sb.append(i).append(' ');
        }
        System.out.println(sb.toString().trim());
    }
}

Konvertera till en sträng

Anropa toString() för att få en vanlig oföränderlig String från byggaren när du är klar med ändringarna.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("result");
        String finalText = sb.toString();
        System.out.println(finalText.toUpperCase());
    }
}

Sammanfoga med en avskiljare

Du kan bygga kommaseparerade listor genom att lägga till en avskiljare mellan elementen och hantera det sista elementet separat.

public class Main {
    public static void main(String[] args) {
        String[] names = {"Ann", "Ben", "Cara"};
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < names.length; i++) {
            sb.append(names[i]);
            if (i < names.length - 1) {
                sb.append(", ");
            }
        }
        System.out.println(sb);
    }
}

Läsa längden

length() anger hur många tecken byggaren innehåller just nu. Värdet uppdateras när du lägger till innehåll.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("12345");
        System.out.println("Length: " + sb.length());
    }
}

Åtkomst till tecken

Använd charAt(index) för att läsa ett enskilt tecken utifrån dess position, precis som med en String.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Coddy");
        System.out.println("First: " + sb.charAt(0));
        System.out.println("Last: " + sb.charAt(sb.length() - 1));
    }
}

Kapacitet jämfört med längd

En byggare har en intern buffert (kapacitet) som växer automatiskt. Du kan ange en initial kapacitet för att minska antalet storleksändringar när du känner till den slutliga storleken.

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder(100);
        sb.append("short");
        System.out.println("Length: " + sb.length());
        System.out.println("Capacity at least: " + (sb.capacity() >= 100));
    }
}

En praktisk byggare

Så här sätter du ihop allt: bygg en kort rapportsträng effektivt med kedjade append-anrop och en loop.

public class Main {
    public static void main(String[] args) {
        int[] sales = {100, 250, 75};
        StringBuilder report = new StringBuilder("Sales Report\n");
        int total = 0;
        for (int i = 0; i < sales.length; i++) {
            report.append("Day ").append(i + 1).append(": ").append(sales[i]).append('\n');
            total += sales[i];
        }
        report.append("Total: ").append(total);
        System.out.println(report);
    }
}

Snabbtest

Varför är StringBuilder effektivare än upprepad konkatenering med + i en loop?

Sammanfattning

Du har lärt dig att bygga strängar med StringBuilder:

  • Det är en muterbar teckensekvens
  • append lägger till innehåll och stöder kedjning
  • Idealiskt för att bygga text i loopar
  • Anropa toString() för att få den slutliga String
  • En initial kapacitet undviker storleksändringar
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 ”Bygga strängar med StringBuilder” gratis?

Ja – hela texten till ”Bygga strängar med StringBuilder” 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 ”Bygga strängar med StringBuilder”?

Effektiv konkatenering 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 2 av 4.

Hur lång tid tar lektionen ”Bygga strängar med StringBuilder”?

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. Varför strängar är oföränderliga
  2. Bygga strängar med StringBuilder
  3. StringBuilder-metoder
  4. StringBuilder jämfört med StringBuffer
← Tillbaka till Java Academy