Byg strings med StringBuilder
Effektiv sammenkædning
Byg strings med StringBuilder er en gratis Java Academy-lektion på CoddyKit. Dette er lektion 2 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.
En foranderlig StringBuilder
StringBuilder er en foranderlig sekvens af tegn. I modsætning til String kan du ændre indholdet direkte, hvilket gør det effektivt at opbygge tekst.
Oprettelse af en StringBuilder
Opret en med new StringBuilder() for at få en tom StringBuilder, eller giv starttekst med, så den begynder med indhold.
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);
}
}Tilføjelse af tekst
Metoden append føjer indhold til slutningen. Den accepterer strenge, tal, tegn, boolske værdier og meget mere.
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);
}
}Kædning af metodekald
append returnerer den samme StringBuilder, så kald kan kædes sammen flydende i ét udtryk.
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);
}
}Opbygning i en løkke
Dette er det primære anvendelsesområde. Føj indhold til i en løkke uden at oprette et nyt objekt hver gang, og konvertér derefter én gang til sidst.
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());
}
}Konvertering til en String
Kald toString() for at hente en almindelig uforanderlig String ud af StringBuilder, når du er færdig med at ændre den.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("result");
String finalText = sb.toString();
System.out.println(finalText.toUpperCase());
}
}Sammensætning med en separator
Du kan opbygge kommaseparerede lister ved at føje en separator til mellem elementerne og håndtere det sidste element omhyggeligt.
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);
}
}Aflæsning af længden
length() fortæller, hvor mange tegn StringBuilder aktuelt indeholder. Værdien opdateres, når du føjer indhold til.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("12345");
System.out.println("Length: " + sb.length());
}
}Adgang til tegn
Brug charAt(index) til at læse et enkelt tegn ud fra dets position, ligesom 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 kontra længde
En StringBuilder har en intern buffer (kapacitet), der vokser automatisk. Du kan angive en startkapacitet for at reducere ændringer af størrelsen, når du kender den endelige størrelse.
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 StringBuilder
Sæt det hele sammen: Opbyg effektivt en lille rapportstreng med kædede append-kald og en løkke.
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);
}
}Hurtigt tjek
Hvorfor er StringBuilder mere effektiv end gentagen sammenkædning med + i en løkke?
Opsummering
Du har lært at opbygge strenge med StringBuilder:
- Det er en foranderlig tegnsekvens
appendføjer indhold til og understøtter kædning- Ideel til at opbygge tekst i løkker
- Kald
toString()for at få den endeligeString - En startkapacitet undgår ændringer af størrelsen
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 “Byg strings med StringBuilder” gratis?
Ja — hele teksten til “Byg strings med StringBuilder” 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 “Byg strings med StringBuilder”?
Effektiv sammenkædning 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 2 af 4.
Hvor lang tid tager lektionen “Byg strings med StringBuilder”?
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
- Hvorfor strings er immutable
- Byg strings med StringBuilder
- StringBuilder-metoder
- StringBuilder kontra StringBuffer