Expressoes regulares, duvida rapida

5 respostas
S

Bom dia,

to tentando ver qtas linhas tem em uma string (as linhas estao sendo terminadas com \n)… to tentando da seguinte maneira:

if (string.matches("\n{2,}") == true){
     System.out.println("Mais que 2");
}
else{
      System.out.println("Menos que 2");
}

soh que sempre tah dando “Menos que 2”… oq tem de errado na er?

valeu

5 Respostas

P

cara eu faria assim, mas tb nao manjo muito…

public int numeroLinhas (String texto){
   texto = texto.toLowerCase();
   String[] ArrayOcorrencia = texto.split("\n");

   return ArrayOcorrencia.length();


}
S

eu tentei fazer desse jeito antes, mas acontecia o seguinte:

se eu tivesse 3 linhas, tinha 3 \n. Ex:

linha1\n
linha2\n
linha3\n

qdo eu dava o split, e tentava mostrar ArrayOcorrencia[2] dava erro, e o [1] mostrava a 3 linha…

nao sei pq

A

uma outra alternativa:

String texto = "absx\n\nafasl\n"; char[] chars = texto.toCharArray(); int qtd = 0; for (int i = 0; i < chars.length; i++ ){ if (chars[i] == '\n' ){ qtd++; } } System.out.println(qtd);

flw

P

minha alternativa muito provavelmente nao dará certu pq ele interpreta o “\n” como um char e nao como um caracter…

entao soh ha uma alternativa mesmu

S

eh, dps vou dar uma olhadinha no jeito que o andersonra falou…
mas eu acharia mais pratico usar expressoes regulares :confused:

Criado 28 de setembro de 2004
Ultima resposta 28 de set. de 2004
Respostas 5
Participantes 3