Cette semaine, c'est Julien qui vous propose un #KataOfTheWeek : Comptage de lignes

Briefing du Kata : Soit un morceau de code source en Java. l'idée est de compter les lignes de code. Ne sont pas considérées comme lignes de code :

  • les lignes blanches
  • les lignes qui commencent par // (il peut y avoir des blancs devant)
  • les lignes qui commencent par /*.

Autres points à prendre en compte :

  • il est possible d'avoir des commentaires multilignes, donc qui commencent par /* et finissent plus loin par */.
  • pour simplifier on considère qu'il ne peut y avoir au maximum qu'un commentaire par ligne (et pas plusieurs commentaires sur une ligne) et qu'une ligne de code ne contient pas de commentaires, et vice-versa, et qu'une string ne contient pas de syntaxe de commentaire.
  • on considère que le code compile. ;-)

Ci-dessous un exemple de code :

// This file contains 3 lines of code
public interface Dave {

    /**
     * count the number of lines in a file
     */
    int countLines(File inFile);

    // I'm a useless line !
}

Un autre exemple de code :

/*****
 * This is a test program with 5 lines of code
 *  \/* no nesting allowed!
 //*****/
public class Hello {

   public static final void main(String [] args) {
      // Say hello
      System.out.println("Hello");
      /* another case to handle */
   }
}

Saurez-vous résoudre le problème ?

Bon courage ! Retrouvez la solution dans cet article 😉