Iterera över tecken
Bearbeta varje char i en sträng
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=acharAt 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 crashHitta 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.
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
- Primitivtypen char
- Hjälpmetoder för tecken
- Iterera över tecken
- Räkna och filtrera char