Para saber las veces que aparece un carácter en un string de Javascript podemos hacerlo de la siguiente forma:
var cadena = "Cuantas 'A' aparecen en esta cadena." var indices = []; for(var i = 0; i < cadena.length; i++) { if (cadena[i].toLowerCase() === "a") indices.push(i); }
Esto nos devolverá "8", que son las veces que aparece la "A" en toda la cadena.
Podemos verlo funcionando en:
O utilizar la siguiente función:
function cuantasVecesAparece(cadena, caracter){ var indices = []; for(var i = 0; i < cadena.length; i++) { if (cadena[i].toLowerCase() === caracter) indices.push(i); } return indices.length; }
Donde le pasaríamos la cadena que queremos y el carácter a buscar...
Algo así por ejemplo:
var string = "Cuantas 'A' aparecen en esta cadena."; var caracterBuscar = "a"; var coincidencias = cuantasVecesAparece(string, caracterBuscar); // o var coincidencias = cuantasVecesAparece("Cuantas 'A' aparecen en esta cadena.", "a");
Y esto nos devolvería: 8
Para trastear:
Hola,
Estoy tratando de capturar la cantidad de cada caracteres ingresados en un texto, pero me muestra para las 3 letras de ejemplo la misma cantidad. Llevo 1 mes estudiando Javascript y no encuentro la solución. Porfa me ayudas!!!!!mil gracias….
Claudia.
var cadena = prompt(«Ingrese un texto»);
var indices = [];
for(var i = 0; i < cadena.length; i++) {
if (cadena[i].toLowerCase() === 'a') indices.push(i);
if (cadena[i].toLowerCase() === 'b') indices.push(i);
if (cadena[i].toLowerCase() === 'c') indices.push(i);
}//necesito ingresar todo el abecedario
console.log(indices.length + " : " + "a");
console.log(indices.length + " : " + "b");
console.log(indices.length + " : " + "c");
¡¡Hola Claudia!!
Muchas gracias por escribir (:
Podrías hacerlo utilizando la siguiente función:
A raíz de tu consulta, he preparado un post explicando el proceso, puedes verlo en https://ekiketa.es/contar-las-letras-que-aparecen-en-un-string-con-javascript/.
¡Saludos!
Hola! me gustaria poder buscar una palabra en vez de una letra, estoy tratando de buscar algunos anagramas dentro de una cadena de strings… Sabras que tipo de funcion tendría que emplear??, de antemano muchas gracias
Hola Tulsi,
Gracias por escribir (:
Dedicaré un post a explicar un poco mejor cómo hacer esto pero de momento te lo cuento rápidamente.
Podemos utilizar una expresión regular y la función match de Javascript para ello.
Te pego el fiddle para que veas el ejemplo:
¡¡Saludos!!
hola, espereos estes bien. sabrias como hacerlo de forma recursiva?
¡Hola Juan José!
Gracias por escribir, ¿A qué te refieres exactamente? Ponme un ejemplo y lo revolvemos entre los dos (:
¡Saludos!
Hola, quiero hacer una función en la que se pida al usuario que meta una frase y la web
responda con la cantidad de caracteres que se han escrito y las veces que se repite
cada uno de los que forman la frase, me vendría bien un poco de ayuda, ya que soy novato en esto.
¡Hola RicG!
Claro, mira. A raíz de una consulta de una compañera escribí esta entrada: Contar las veces que aparece una letra en una frase con Javascript.
Para contar los carácteres totales puedes hacerlo con:
Espero que te sirva (:
¡¡Saludos!!
Lo que me gustaría es ver si es posible con un bucle for, guardando en un array los caracteres y que lo recorriera buscando las repeticiones y que al principio le pidiesen al usuario que entra que escribiera la frase (con un prompt) que es de la que se van a sacar que caracteres salen y cuantas veces salen, no sé si me explico.
Hola, quería comentarte que hice la solución que me mostraste por aquí y no es exactamente eso, lo que quería era que recorriera un array donde he guardado las variables (en este caso las letras del abecedario) para una frase que introduce el usuario y que le diga, por ejemplo, la a aparece 7 veces, la b 5, la c 6, pero la frase la introduce el usuario, gracias por la ayuda y un saludo.
Buenas RicG, gracias por volver a escribir (:
Mira a ver si este script te va mejor. Puedes editarlo con los tips que comentos en los posts: quitarle los espacios o dejarlos, diferenciar entre mayúsculas y minúsculas, etc…
¡Un saludo!
yo he hecho esto pero no me sale, me podría ayudar?
#include
using namespace std;
int main() {
string nombre, letra;
int i, longitud, contador=0;
cout<< "Dime una frase: ";
getline (cin, nombre);
cout<< "Dime letra a encontrar: ";
getline (cin, letra);
longitud = nombre.length();
for (i=0; i<longitud; i++ )
{
if (nombre == letra){
contador++;
}
}
cout << "La letra "<< letra << " aparece en "<< nombre << " "<< contador << " veces";
return 0;
}
!Hola Amanda!
Lo siento, parece que estás usando c++ pero este post está orientado a Javascript.
Puedes buscar equivalencias para c++ y tendrás la solución, al fin y al cabo si conoces un lenguaje puedes manejarte mas o menos con otros.
!Saludos!