Ocorrencia de um caracter em uma String

8 respostas
Pedrosa

Galera como faço para obter o número de um determinado caracter em uma String?

Ex AAA;BBB;CCC;DDDD

Nesse caso preciso saber quantos ; tem nessa String?

Pois estou obtendo valores e usando o split, mas existem casos que só chegarão 2 ; e preciso identicar para não dar exception no split.

8 Respostas

Pedrosa

Existe algo na classe String que faça isso ?

public static void main(String[] args) {
    String frase = "AAA;BBB;CCC;DDD;";
    Pattern p = Pattern.compile(";");
    Matcher m = p.matcher(frase);
    int count = 0;
    while (m.find()) {
         count++;
    }    
    System.out.println(count);
}
s4nchez

Se você analisar a quantidade de elementos no array gerado no split já não é suficiente?

maquiavelbona

Opa!
Não gosto de postar código pronto, mas aí vai:

int numero = new String("AAA;BB;CCCCC;DD;F").split(";").length-1;
System.out.println(numero>0?""+numero:"0");

Até!

Pedrosa

Desse jeito não funciona direito:

int numero = new String("AAA;BB;CCCCC;nn").split(";").length;

Isso aqui está retornando 4 e so tenho 3 ;

_fs

new String(“AAA;BB;CCCCC;nn”).split(";")

Retorna um array com quatro partes
AAA
BB
CCCCC
nn

Logo, é necessário fazer como o sr Bona fez.
new String(“AAA;BB;CCCCC;nn”).split(";").length - 1;

maquiavelbona
Outro exemplo que achei:
import org.apache.commons.lang.StringUtils;

public class StringUtilsExampleV1 {

  public static void main(String args[]) {

    System.err.println(StringUtils.countMatches(";;;;;", ";"));
  }
}
peczenyj

expressões regulares?

String x = "AAA;BB;CCCCC;nn"; int i = x.replaceAll("[^;]","").length();

Pedrosa

Valeu galera existem diversas maneiras de resolver o mesmo problema!, kd as estrelas não podemos mais avaliar as respostas?

Criado 8 de novembro de 2006
Ultima resposta 8 de nov. de 2006
Respostas 8
Participantes 5