Contar nr de aparicoes de determinado Char em uma String
Caro amigos.
Nao conheço muito bem java e estou me batendo com coisas bastante simples, como contar o nr de aparicoes de um determinado caracter ou conjuto de caracteres em uma string.
Exemplo:
contar quantas vezes aparece o "is" dentro da String.
que me retorna-se um valor inteiro de quantas vezes apareceu
Obrigado[/code]
String text = 'This is a test';
Junior Flizikowski
Curtidas 0
Respostas
Junior Flizikowski
09/04/2009
Pessoal achei q tinha um metodo da classe string pra isso mas nao tem entao fiz asssim.
Nao tem nda disso na documentação
[url]http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html [/url]
Valeu
public static int conta_ocorrencias(char caracter ,String str){
int count=0;
for (int i=0;i<str.length();i++){
if(str.charAt(i)==caracter){
count++;
}
}
return count;
}
GOSTEI 0
Vagner Planello
09/04/2009
pra contar caracter vai funcionar, mas vc nao consegue contar as ocorrencias de "is" com esse metodo.
GOSTEI 0
Junior Flizikowski
09/04/2009
Nao, consigo, teria que criar um metodo somente pra isso.
Com esse metodo que criei resolveu meu problema, pois necessitava busca as ocorrencias de somente um char.
Pra testar a palavra is ou qualquer outra palavra, usaria o metodo split() da Classe String para dividir ela em palavras e dai testaria as ocorencias do que precisaria usando o metodo matches() da classe Pattern.
....
if(Pattern.matches("[is]+", minhaString)){
count++
}
GOSTEI 0
Carlos Heuberger
09/04/2009
se fosse para contar as ocorrencias do "is" independentemente se for palavra ou não:
somente palavras "is":
[]]
minhaString.split("is", -1).length-1minhaString.split("\\bis\\b", -1).length-1GOSTEI 0
Lynn Sacoor
09/04/2009
:idea:
/* conta o nº de ocorrências de uma sequência de caracteres num
* texto, somente nos seguintes casos: se a ocorrência estiver no fim
* ou no inicio da palavra, ou se for uma palavra ****************/
import java.util.*;
public class Ocorre_IS
{
public static void main(String args[])
{
String texto = "This is a test";
String c = "is";
String le_is = null;
int cont = 0;
StringTokenizer is = new StringTokenizer(texto);
while (is.hasMoreTokens())
{
le_is = is.nextToken();
if ( (le_is.compareToIgnoreCase(c) = 0) ||
(le_is.startsWith(c)) || (le_is.endsWith(c)) )
cont++;
}
System.out.println ("Ocorrencias do 'is' = " + cont);
}
}
/*para verificar as ocorrências no meio da palavra, já é mais complicado!...
Teria que haver um método apropriado para isso. Aguém conheçe???
Lynn Sacoor. Moçambique.*************/
:idea:
GOSTEI 0