Java Academy · leksjon

Telle og filtrere tegn

Praktiske char-oppgaver.

Leksjon 4 av 413 trinn

Telle og filtrere tegn er en gratis leksjon i Java Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Java Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Java Academy inneholder totalt 4 leksjoner.

Telle med en løkke

For å telle tegn brukes en tellevariabel som økes med 1 hver gang en betingelse er oppfylt.

Start telleren på 0, gå gjennom hver char i en løkke, og øk den når char-en består testen.

int count = 0;
for (char c : "hello".toCharArray()) {
    count++;
}

Telling av vokaler

Her teller vi vokaler ved å kontrollere hvert tegn mot settet med vokaler.

Vi gjør først tegnet om til liten bokstav, slik at både 'A' og 'a' telles på samme måte.

public class Main {
    public static void main(String[] args) {
        String text = "Java Rocks";
        int vowels = 0;
        for (char c : text.toCharArray()) {
            char low = Character.toLowerCase(c);
            if (low == 'a' || low == 'e' || low == 'i' || low == 'o' || low == 'u') {
                vowels++;
            }
        }
        System.out.println(vowels);
    }
}

Telling av sifre

For å telle hvor mange sifre som forekommer i en String, bruker du Character.isDigit inne i løkken.

Dette hopper automatisk over bokstaver og symboler, så telleren økes bare for sifre.

public class Main {
    public static void main(String[] args) {
        String text = "abc123x9";
        int digits = 0;
        for (char c : text.toCharArray()) {
            if (Character.isDigit(c)) digits++;
        }
        System.out.println(digits);
    }
}

Telling av bokstaver

Bytt ut med Character.isLetter for å telle alfabetiske tegn i stedet.

Strukturen er den samme: løkke, test og økning. Bare betingelsen endres.

public class Main {
    public static void main(String[] args) {
        String text = "a1 b2 c3";
        int letters = 0;
        for (char c : text.toCharArray()) {
            if (Character.isLetter(c)) letters++;
        }
        System.out.println(letters);
    }
}

Telling av et bestemt tegn

For å telle ett bestemt tegn sammenligner du hvert tegn med ==.

Dette teller hvor mange ganger bokstaven 'a' forekommer i teksten.

public class Main {
    public static void main(String[] args) {
        String text = "banana";
        int aCount = 0;
        for (char c : text.toCharArray()) {
            if (c == 'a') aCount++;
        }
        System.out.println(aCount);
    }
}

Filtrering av tegn

Filtrering betyr å bygge en ny String som bare beholder tegnene du ønsker.

Her beholder vi bokstaver og sifre og fjerner mellomrom og tegnsetting ved å legge tegnene til i en String som inneholder resultatet.

public class Main {
    public static void main(String[] args) {
        String text = "a-b 1!2";
        String clean = "";
        for (char c : text.toCharArray()) {
            if (Character.isLetterOrDigit(c)) clean += c;
        }
        System.out.println(clean);
    }
}

Bruke StringBuilder

Det er tregt å bygge en String med += i en lang løkke, fordi hvert trinn oppretter en ny String.

StringBuilder er raskere: legg til tegn, og kall toString() til slutt.

public class Main {
    public static void main(String[] args) {
        String text = "H e l l o";
        StringBuilder sb = new StringBuilder();
        for (char c : text.toCharArray()) {
            if (!Character.isWhitespace(c)) sb.append(c);
        }
        System.out.println(sb.toString());
    }
}

Fjerne blanktegn

Et vanlig filter fjerner mellomrom, tabulatorer og linjeskift ved hjelp av Character.isWhitespace.

Behold hvert tegn som ikke er et blanktegn, slik at teksten blir sammenhengende.

public class Main {
    public static void main(String[] args) {
        String text = " J a v a ";
        StringBuilder sb = new StringBuilder();
        for (char c : text.toCharArray()) {
            if (!Character.isWhitespace(c)) sb.append(c);
        }
        System.out.println(sb.toString());
    }
}

Filtrer og tell

Du kan kombinere ideene: filtrer til en ren String, og mål deretter lengden.

Her teller vi bare bokstavene ved å filtrere og lese length().

public class Main {
    public static void main(String[] args) {
        String text = "a1b2c3";
        StringBuilder sb = new StringBuilder();
        for (char c : text.toCharArray()) {
            if (Character.isLetter(c)) sb.append(c);
        }
        System.out.println(sb.length());
    }
}

Antall store og små bokstaver

Du kan holde oversikt over flere tellere samtidig. Her teller vi store og små bokstaver separat.

Hvert tegn går gjennom to uavhengige kontroller, og den telleren som passer, økes.

public class Main {
    public static void main(String[] args) {
        String text = "JavaCode";
        int upper = 0, lower = 0;
        for (char c : text.toCharArray()) {
            if (Character.isUpperCase(c)) upper++;
            if (Character.isLowerCase(c)) lower++;
        }
        System.out.println(upper + " " + lower);
    }
}

Hvorfor filtrering er viktig

Telling og filtrering er vanlige oppgaver: validering av passord, rensing av brukerinndata eller opptelling av tegntyper.

Det samme mønsteret med løkke og test håndterer dem alle. Endre bare betingelsen slik at den passer til målet.

if (Character.isDigit(c)) {
    count++;
}

Kort kontroll

Test forståelsen av telling og filtrering av tegn.

Oppsummering

Telling bruker en teller som økes når et tegn består en test som isDigit eller ==.

Filtrering bygger en ny String som bare beholder ønskede tegn, helst med StringBuilder for bedre hastighet. Endre betingelsen for å telle vokaler, bokstaver eller sifre, eller for å fjerne blanktegn.

Gratis å komme i gang

Lær deg Java med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
104
Leksjoner
374

Ofte stilte spørsmål

Er leksjonen «Telle og filtrere tegn» gratis?

Ja – hele teksten i «Telle og filtrere tegn» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Java Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Java Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Telle og filtrere tegn»?

Praktiske char-oppgaver. Du øver på Java Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Java Academy?

Ingen tidligere erfaring er nødvendig. Java Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Telle og filtrere tegn»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Java Academy-leksjonen?

Ja. Alle Java Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Primitivtypen char
  2. Hjelpemetoder for tegn
  3. Gå gjennom tegn
  4. Telle og filtrere tegn
← Tilbake til Java Academy