[RESOLVIDO]Trevas com a classe 'StringTokenizer'

2 respostas
leorbarbosa

Pessoal,

estou tendo problemas com a classe 'StringTokenizer'. No código abaixo, o método 'nextToken' sempre retorna o próximo na iteração (tudo bem). Mas pela implementação do livro do Edson Gonçalves, sempre salta um item do vetor. Por exemplo: extensoesPermitidas = 'jpg,gif,bmp,png' - salta jpg e bmp

public boolean isPermission(String filename)
  {
    String lowerCaseName = filename.toLowerCase();
    StringTokenizer st = new StringTokenizer(extensoesPermitidas, ",", false);

    while (st.hasMoreTokens() )
    {
      if (lowerCaseName.endsWith("." + st.nextToken() ))
        return true;
    }
    return false;
  }

Alguém já passou por isso?

2 Respostas

leorbarbosa

Por algum motivo que ainda não sei, quando estava debugando pelo NetBeans 6.8 e passava o mouse sobre o método ‘nextToken’, o compilador executa e ia para o próximo item.

Nunca tinha visto isso!

ViniGodoy

Diz o Javadoc do java 5:

Ou seja, você só deve usar o StringTokenizer se sua versão de java for 1.4 ou anterior.

O mesmo código seu, usando o split, ficaria simples assim:

public boolean isPermission(String filename) { String lowerCaseName = filename.toLowerCase(); String extensoes[] = extensoesPermitidas.split(","); for (String extensao : extensoes) { if (lowerCaseName.endsWith("." + extensao) { return true; } return false; }

Criado 7 de março de 2010
Ultima resposta 8 de mar. de 2010
Respostas 2
Participantes 2