Een for-lus in Java gebruiken om een ​​string te verwerken

I can never get this to loop all the way through the string. I can't use >= or == in this loop it stops it from working :( help

    int s = 0;
    String twocharacters = "";

    for (int i = 0; i < value.length(); i++){

        char c = value.charAt(i);
        char w = value.charAt(i + 1);

        if (c == '/' && w == '*' && s == 0){
            s = 1;
        }
        else if (c == '*' && w == '/' && s == 1){
            s = 0;
        }
        else if (s == 0 && c != ' ' && c != '*' && c != '/'){
            twocharacters += c;
            System.out.println(twocharacters);
        }
    }
0
Leg uit wat de "waarde" is
toegevoegd de auteur jayunit100, de bron
Ah, ik zie het nu :) Bedankt
toegevoegd de auteur Madao, de bron
char w = value.charAt (i + 1) leidt tot een uitzondering wanneer i == value.length() - 1
toegevoegd de auteur Robin, de bron
Je zult ook één karakter voor het einde willen stoppen vanwege de charAt (i + 1) .
toegevoegd de auteur Dave Newton, de bron
als je een charAt (i + 1) wilt doen, zou je de lus alleen moeten uitvoeren tot i
toegevoegd de auteur aishwarya, de bron

1 antwoord

Bij de laatste iteratie ( i = value.length() - 1 ), toewijzen van waarde. CharAt (i + 1); naar w zou gooi een uitzondering omdat je aan het einde van de string bent en het volgende personage niet kunt krijgen.

Proberen:

for (int i = 0; i < value.length() - 1; i++){

3
toegevoegd