Løkker over tegn
Behandl hvert char i en streng.
Løkker over tegn 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.
Strenge består af char-værdier
En String er en sekvens af tegn. Hvert tegn står på en position, der kaldes et indeks, og indekseringen starter ved 0.
I "Java" er indeks 0 'J', indeks 1 er 'a' og så videre. Med en løkke kan du besøge hver char i rækkefølge.
String word = "Java";
// indexes: 0=J 1=a 2=v 3=acharAt henter ét tegn
Metoden charAt(index) returnerer char-værdien på en given position i en String.
Indekser går fra 0 til length() - 1. Hvis du spørger efter et indeks uden for dette interval, udløses en fejl.
public class Main {
public static void main(String[] args) {
String word = "Java";
System.out.println(word.charAt(0));
System.out.println(word.charAt(3));
}
}Hvor lang er strengen?
Metoden length() returnerer, hvor mange tegn en String indeholder.
For "Java" returnerer den 4. Fordi indekseringen starter ved 0, er det sidste gyldige indeks altid length() - 1.
public class Main {
public static void main(String[] args) {
String word = "Hello";
System.out.println(word.length());
}
}Løkke med et indeks
En klassisk for-løkke lader indekset gå fra 0 til og med length() - 1 og kalder charAt hver gang.
Det giver dig både positionen og tegnet, hvilket er nyttigt, når indekset har betydning.
public class Main {
public static void main(String[] args) {
String word = "Java";
for (int i = 0; i < word.length(); i++) {
System.out.println(word.charAt(i));
}
}
}Den udvidede for-løkke
Hvis du ikke har brug for indekset, kan du konvertere String til et char-array med toCharArray() og bruge en for-each-løkke.
Det er let at læse: Gør noget for hver char c i ordet.
public class Main {
public static void main(String[] args) {
String word = "Java";
for (char c : word.toCharArray()) {
System.out.println(c);
}
}
}Udskrivning på én linje
Brug System.out.print i stedet for println for at holde tegnene på samme linje.
Det er praktisk, når du genopbygger eller omdanner tekst tegn for tegn.
public class Main {
public static void main(String[] args) {
String word = "Java";
for (char c : word.toCharArray()) {
System.out.print(c);
}
System.out.println();
}
}Omdannelse af hver char
Inde i løkken kan du ændre hver char, før du bruger den. Her gør vi hvert bogstav stort undervejs.
Vi opbygger en ny String, fordi den oprindelige String ikke kan ændres; Strings er uforanderlige.
public class Main {
public static void main(String[] args) {
String word = "java";
String result = "";
for (char c : word.toCharArray()) {
result += Character.toUpperCase(c);
}
System.out.println(result);
}
}Gennemløb baglæns
Hvis du vil vende en String om, skal du gennemløbe den fra det sidste indeks ned til 0 ved hjælp af charAt.
Start i ved length() - 1, og formindsk det, indtil det når 0.
public class Main {
public static void main(String[] args) {
String word = "Java";
for (int i = word.length() - 1; i >= 0; i--) {
System.out.print(word.charAt(i));
}
System.out.println();
}
}Vær opmærksom på grænserne
Gennemløb altid, mens i < word.length(), aldrig i <= word.length().
Hvis du går én position for langt, kalder du charAt med et ugyldigt indeks, og der udløses en StringIndexOutOfBoundsException.
String word = "Hi";
// valid indexes: 0 and 1 only
// charAt(2) would crashFind et tegn
Gennemløb tegnene, og sammenlign hver char med == for at finde et bestemt tegn. Her rapporterer vi indekset for den første 'a'.
Vi stopper tidligt med break, så snart vi finder det.
public class Main {
public static void main(String[] args) {
String word = "Java";
for (int i = 0; i < word.length(); i++) {
if (word.charAt(i) == 'a') {
System.out.println("Found at " + i);
break;
}
}
}
}Læsning fra en String
Gennemløb af char-værdier er grundlaget for opgaver med søgning, erstatning og validering.
Når du har brug for at undersøge tekst i detaljer, er det standardværktøjet at gennemgå hver char med en løkke.
for (char c : "ab".toCharArray()) {
System.out.println(c);
}Hurtigt tjek
Test din forståelse af gennemløb af tegn.
Opsummering
Brug charAt(i) med en løkke over indekser eller toCharArray() med en for-each-løkke for at besøge hver char.
Gennemløb, mens i < length(), så du holder dig inden for grænserne, og opbyg nye Strings, fordi Strings er uforanderlige. Dette mønster bruges til at søge i og omdanne tekst.
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 “Løkker over tegn” gratis?
Ja — hele teksten til “Løkker over tegn” 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 “Løkker over tegn”?
Behandl hvert char i en streng. 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 “Løkker over tegn”?
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.