Java Academy · Lektion

Iterera över tecken

Bearbeta varje char i en sträng

Lektion 3 av 413 steg

Iterera över tecken ä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.

Strängar består av char-värden

En String är en följd av tecken. Varje tecken står på en position som kallas index, med början på 0.

I "Java" är index 0 'J', index 1 'a' och så vidare. Med en loop kan du besöka varje char i ordning.

String word = "Java";
// indexes: 0=J 1=a 2=v 3=a

charAt hämtar ett tecken

Metoden charAt(index) returnerar char-värdet på en given position i en String.

Index går från 0 till length() - 1. Om du frågar efter ett index utanför det intervallet uppstår ett fel.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        System.out.println(word.charAt(0));
        System.out.println(word.charAt(3));
    }
}

Hur lång är strängen?

Metoden length() returnerar hur många tecken en String innehåller.

För "Java" returnerar den 4. Eftersom index börjar på 0 är det sista giltiga indexet alltid length() - 1.

public class Main {
    public static void main(String[] args) {
        String word = "Hello";
        System.out.println(word.length());
    }
}

Iterera med ett index

En klassisk for-loop kör indexet från 0 till och med length() - 1 och anropar charAt varje gång.

På så sätt får du både positionen och tecknet, vilket är användbart när indexet spelar roll.

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 utökade for-loopen

Om du inte behöver indexet kan du konvertera String till en char-array med toCharArray() och använda en for-each-loop.

Det blir lättläst: gör något för varje 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);
        }
    }
}

Skriva ut på samma rad

Använd System.out.print i stället för println om du vill behålla tecknen på samma rad.

Det är praktiskt när du bygger upp eller omvandlar text tecken för tecken.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (char c : word.toCharArray()) {
            System.out.print(c);
        }
        System.out.println();
    }
}

Omvandla varje char

Inuti loopen kan du ändra varje char innan du använder den. Här gör vi varje bokstav till en versal under tiden.

Vi bygger en ny String eftersom den ursprungliga String inte kan ändras; strängar är oföränderliga.

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);
    }
}

Iterera bakåt

Om du vill vända på en String itererar du från det sista indexet ned till 0 med hjälp av charAt.

Börja med i på length() - 1 och minska det tills 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();
    }
}

Håll koll på gränserna

Iterera alltid medan i < word.length(), aldrig i <= word.length().

Om du går ett steg för långt anropas charAt med ett ogiltigt index, vilket orsakar en StringIndexOutOfBoundsException.

String word = "Hi";
// valid indexes: 0 and 1 only
// charAt(2) would crash

Hitta ett tecken

Iterera och jämför varje char med == för att hitta ett måltecken. Här rapporterar vi indexet för den första 'a'.

Vi avslutar tidigt med break så snart vi hittar 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äsa från en String

Att iterera över char-värden är grunden för uppgifter som sökning, ersättning och validering.

När du behöver granska text noggrant är det standardverktyget att gå igenom varje char med en loop.

for (char c : "ab".toCharArray()) {
    System.out.println(c);
}

Snabbtest

Testa dina kunskaper om att iterera över tecken.

Sammanfattning

Använd charAt(i) med en indexloop eller toCharArray() med en for-each-loop för att besöka varje char.

Iterera medan i < length() för att hålla dig inom gränserna och bygg nya String-värden eftersom strängar är oföränderliga. Det här mönstret ligger till grund för sökning och omvandling av 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 ”Iterera över tecken” gratis?

Ja – hela texten till ”Iterera över tecken” 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 ”Iterera över tecken”?

Bearbeta varje char i en sträng 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 ”Iterera över tecken”?

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. Primitivtypen char
  2. Hjälpmetoder för tecken
  3. Iterera över tecken
  4. Räkna och filtrera char
← Tillbaka till Java Academy