Contar cuantos diferentes digitos hay en un numero dependiendo de un rango

Preguntas RecientesCategoria: JavaContar cuantos diferentes digitos hay en un numero dependiendo de un rango
drozz preguntada 1 año antes

por ejemplo tengo un numero 345665756765867 y quiero contar los diferentes numeros que hay en el rango del digito 3 – 14 que serian : 56657567658 y los diferentes numeros que hay son : 5,6,7,8 y se repiten: 4,4,2,1

1 Respuestas
snow Staff contestada 1 año antes
import java.util.Scanner;

public class ContadorDigitos {
	
	public ContadorDigitos() {
	}
	public int[] numerosDeintervalo(int inicio, int fin,String digito) {
		//obtenemos los numeros del intervalo
		// se le resta -1 al inicio y fin porque las cadenas toman los valores contando desde el cero, (buscalo en google)
		String intervalo = digito.substring(inicio -1,fin -1);
		int totalDigitos = intervalo.length();
		int[]numerosIntervalo = new int[totalDigitos];
		System.out.println("numeros del intervalo: ");
		for(int i =0; i < totalDigitos; i++) {
			numerosIntervalo[i] = Integer.parseInt(intervalo.charAt(i) + "");
			System.out.print(numerosIntervalo[i]);
		}
		System.out.println();
		return numerosIntervalo;
	}
	
	public boolean existeNumero(String digitos, int numero) {
		// de una cadena con puros numeros regresa true si ya exixste el nuemro dado y false si no se encuentra
		for(int i =0; i < digitos.length(); i++) {
			int n = Integer.parseInt(digitos.charAt(i) + "");
			if( n == numero) {
				return true;
			}
		}
		return false;
	}
	
	public int[] digitosExistentes(int [] numeros) {
		//dado un arreglo de numeros devolvera otro arreglo con los digitos diferenetes que existen en el primer arreglo
		String numerosDiferentes = "";
		for(int i = 0; i < numeros.length; i++) {
			//tomamos digito por digito
			int digito = numeros[i];
			if(!existeNumero(numerosDiferentes, digito)) {
				numerosDiferentes += digito;
			}
		}
		
		int totalDigitos = numerosDiferentes.length();
		int[]numerosExistentes = new int[totalDigitos];
		System.out.println("numeros diferentes que hay: ");
		for(int i =0; i < totalDigitos; i++) {
			numerosExistentes[i] = Integer.parseInt(numerosDiferentes.charAt(i) + "");
			System.out.print(numerosExistentes[i]+ ",");
		}
		System.out.println();
		return numerosExistentes;
	}
	
	public int [] conteo(int arreglo1[], int arreglo2[]) {
		//buscara cuantos elementos del arreglo1 existen en el arrelgo 2
		// y regresa un arreglo con el conteo
		int[] conteo= new int[arreglo1.length];
		for(int i = 0; i < arreglo1.length; i++) {
			int digito = arreglo1[i];
			for(int j = 0; j < arreglo2.length; j++) {
				if(digito == arreglo2[j]) {
					conteo[i] = conteo[i] + 1;
				}
			}
		}
		return conteo;
	}
	
	
	public static void main(String... ass) {
		ContadorDigitos prueba = new ContadorDigitos();
		Scanner entradaTeclado = new Scanner(System.in);
		System.out.println("ingresa la n cantidad de numeros enteros");
		String enteros = entradaTeclado.nextLine();
		System.out.println("incio del intervalo");
		int inicio = entradaTeclado.nextInt();
		System.out.println("fin del intervalo");
		int fin = entradaTeclado.nextInt();
		int [] numerosIntervalo = prueba.numerosDeintervalo(inicio,fin,enteros);
		int [] numerosDiferentes = prueba.digitosExistentes(numerosIntervalo);
		int [] conteo = prueba.conteo(numerosDiferentes,numerosIntervalo);
		System.out.println("coinsidencias:");
		for(int i = 0; i < conteo.length; i++) {
			System.out.print(conteo[i] + ",");
		}
		
	}
}


Your Answer

2 + 16 =