Java Academy · Lektion

Løkker over tegn

Behandl hvert char i en streng.

Lektion 3 af 413 trin

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=a

charAt 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 crash

Find 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.

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 “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.

Alle lektioner i dette kursus

  1. Primitivtypen char
  2. Hjælpemetoder til tegn
  3. Løkker over tegn
  4. Optælling og filtrering af tegn
← Tilbage til Java Academy