Pedrosa
#1
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.
Pedrosa
#2
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
#3
Se você analisar a quantidade de elementos no array gerado no split já não é suficiente?
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
#5
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
#6
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;
Outro exemplo que achei:
[code]
import org.apache.commons.lang.StringUtils;
public class StringUtilsExampleV1 {
public static void main(String args[]) {
System.err.println(StringUtils.countMatches(";;;;;", ";"));
}
}[/code]
expressões regulares?
String x = "AAA;BB;CCCCC;nn";
int i = x.replaceAll("[^;]","").length();
Pedrosa
#9
Valeu galera existem diversas maneiras de resolver o mesmo problema!, kd as estrelas não podemos mais avaliar as respostas?