Programa Java que calcule el número de veces que aparece un determinado carácter dentro de un texto.
Este es un
ejemplo típico que se plantea para trabajar con cadenas de caracteres y hacer
uso de los métodos de la clase String de Java. En concreto en este caso para buscar
el carácter dentro del texto utilizaremos el método indexOf de String. El
método indexOf(carácter) devuelve la primera posición dentro del String donde
se encuentra el carácter o -1 si no lo ha encontrado. También se puede invocar
al método con dos parámetros indexOf(carácter, posición) en este caso la
búsqueda del carácter dentro del String comienza a partir de la posición que se
le envía como parámetro. Devuelve la primera posición
donde se encuentra o -1 si no lo ha encontrado.
Para
resolverlo escribiremos un método llamado contarCaracteres
que reciba el texto (String) y el carácter (char) a buscar y devuelva el número
de veces que se repite el carácter dentro del texto.
El proceso
utilizado para buscar el carácter en el texto es el siguiente:
Se busca la primera
vez que aparece el carácter con el método indexOf:
posicion =
cadena.indexOf(caracter);
Si el carácter
se ha encontrado se suma 1 a un contador y se sigue buscando a partir de la posición
siguiente a la hallada:
posicion =
cadena.indexOf(caracter, posicion + 1);
Este proceso se repite mientras el carácter se encuentre en la cadena. La búsqueda termina cuando
indexOf devuelva -1 como posición.
//método para calcular el número de veces que se repite un carácter en un String
public static int contarCaracteres(String cadena, char caracter) {
int posicion, contador = 0;
//se busca la primera vez que aparece
posicion = cadena.indexOf(caracter);
while (posicion != -1) { //mientras se encuentre el caracter
contador++; //se cuenta
//se sigue buscando a partir de la posición siguiente a la encontrada
posicion = cadena.indexOf(caracter, posicion + 1);
}
return contador;
}
Un programa completo para utilizar este método
puede ser el siguiente:
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
String texto;
char caracter;
int numeroDeVeces = 0;
do {
System.out.println("Introduce texto: ");
texto = sc.nextLine();
} while (texto.isEmpty());
System.out.print("Introduce un carácter: ");
caracter = (char) System.in.read();
numeroDeVeces = contarCaracteres(texto, caracter);
System.out.println("El caracter " + caracter + " aparece " + numeroDeVeces + " veces");
}
//calcular el número de veces que se repite un carácter en un String
public static int contarCaracteres(String cadena, char caracter) {
int posicion, contador = 0;
//se busca la primera vez que aparece
posicion = cadena.indexOf(caracter);
while (posicion != -1) { //mientras se encuentre el caracter
contador++; //se cuenta
//se sigue buscando a partir de la posición siguiente a la encontrada
posicion = cadena.indexOf(caracter, posicion + 1);
}
return contador;
}
}
Como sería este ejercicio de forma recursiva?? Saludos.
ResponderEliminarScanner lector = new Scanner(System.in);
EliminarString Texto="";
String caracter="";
int cont=0;
System.out.println("Ingresa el texto ");
Texto = lector.nextLine();
System.out.println("¿que caracter deseas contar? ");
caracter = lector.nextLine();
for (int i = 0; i < Texto.length(); i++) {
if(Texto.charAt(i)== caracter.charAt(0) ){
cont ++;
}
}
if (cont != 0) {
System.out.println("El caracter "+caracter.charAt(0)+ " se repite " + cont + " veces");
}else{
System.out.println("El caracter no se encuentra en este texto");
}
ocupo eso pero recursivo
Eliminarpor favor me colaborarian con este algoritmo gracias, Elaborar un programa que permita calcular la nota final de un estudiante, donde la nota final se calcula teniendo en cuenta que hay un primer nota del 20%, un parcial del 30%, un segunda nota 20% y un
ResponderEliminarfinal del 30%. El algoritmo debe pedir al usuario el ingreso de las cuatro notas
mencionadas. Y al final si la nota es mayor que 4 debe dar un mensaje de
felicitación.
https://mkniit.blogspot.in
ResponderEliminarcomo se realizaria ese ejercicio con un arreglo de String
ResponderEliminarno me funciona :(
ResponderEliminaralguien me puede ayudar
ResponderEliminarllenar un arraylist con 10 palabras,posteriormente recorrer el arraylist e imprimir las palabras pares
Alguien me podría ayudar por favor: Hacer un programa de recursividad que cuente las vocales que hay en un texto o palabra y que me diga cuantas vocales hay, y que después si quiero buscar una letra en especifico: si es vocal me diga:"si encontrada y tantas veces" pero si es cualquier otra letra que no sea vocal me diga: "no encontrada". Por favor ayúdenme.
ResponderEliminarEsque en la respuesta de Vicente sale un clico y por lo tanto no es recursivo
ResponderEliminarHola que tal
ResponderEliminarpor ejemplo si en vez de pedir un caracter solo para que te diga cuentas veces aparece tengo que comparar todas las letras del abecedario y mostrar cuantas veces sale un caracter cual metodo puedo utilizar? por favor.
quisiera una ayuda ahora mismo porfavor...
ResponderEliminarcrear una clase llamada "smartphone", debera contener los siguientes atributos:
-marca
-modelo
-capacidad
-ram
-precio
adicionalmente debera crear un metodo "comprasmartphone"
ayuda nececito saber como hacer si quiero que me salga la pociocion de una letra de una cadena de indexOf ingresando yo la letra con Scanner.
ResponderEliminarme puedes ayudar? necesito saber cuantas veces se repiten los valores.
ResponderEliminarpackage random;
public class DADOS {
public static void main(String[] args) {
{//DADOS ALEATORIOS HASTA EL 100
for (int i=1;i<=100;i++)
{
int dado = (int) (Math.random()*100+1);
System.out.println(dado);
int numero1 = 0;
for(int i1=0; i1<numero1; i1++)
{
}
}}}}
Como cuento la cantidad de números ingresados en un cuadro de texto "Text field"
ResponderEliminargracias: puedes recomendar algun curso de Java || algun libro de practicas y proyectos:
ResponderEliminarlo ejecute y marca muchos errores
ResponderEliminarHola me podrías ayudar con
ResponderEliminarMostrar los caracteres de un texto tomándolos con otro
buenas noches me ayudan con este ejercicio
ResponderEliminarEscribe una clase `Main` con un método llamado asteriscos que reciba un string str y retorne el número de asteriscos que hay en str.
Este comentario ha sido eliminado por el autor.
ResponderEliminarNecesito saber en un texto cuantos caracteres hay segun el usuario el caracter que eliga. SIN UTILIZAR EL METODO STRING NI SIMILILARES.
ResponderEliminarNecesito ayuda:(
ResponderEliminar// Genere 2 vectores de dimensiones m, cada uno de estos vectores deben tener sus elementos no repetidos, luego generar 2 vectores que contengan respectivamente:
Los elementos que son intersección de los dos vectores. Los elementos que son unión de los dos vectores.//
Buenas tardes.
ResponderEliminarDisculpen quisiera saber como puedo contar total de stopwords que hay en un texto. Por favor
gracias por el codigo.... me has salvado, ahora comprendo y entiendo como se hace...gracias...
ResponderEliminar