James Willow:
Je suis plein d'espoir qu'il a une complexité constante de temps, mais son nom l'indique il compte effectivement les jetons.
Jacob G.:
Voici la mise en œuvre, si vous étiez curieux:
public int countTokens() {
int count = 0;
int currpos = currentPosition;
while (currpos < maxPosition) {
currpos = skipDelimiters(currpos);
if (currpos >= maxPosition)
break;
currpos = scanToken(currpos);
count++;
}
return count;
}
Je ne suis pas trop familier avec StringTokenizer
, mais en supposant maxPosition
peut changer ( ce qui ressemble à elle peut), alors il est pas à temps constant. Vous devez aussi prendre en compte la complexité de skipDelimiters
et scanToken
.