Java - Ayuda con cadenas de caracteres

 
Vista:
sin imagen de perfil
Val: 27
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con cadenas de caracteres

Publicado por NAKER (8 intervenciones) el 11/08/2020 23:18:49
Buenas!!!

Necesito un programa que dado una cadena separadas por comas por ejemplo:

1256,3452,543555,242,55343,3,4556,34353,88,8238

Me de un resultado tal que así:

1- 1
2- 1
3- 3
4- 1
5- 2
6- 0
7- 0
8- 2
9- 0

Es decir detecte entre coma y coma cual es el primer dígito y contabilice cuantos números hay que comienzan por dicho. Espero me puedan ayudar! Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda con cadenas de caracteres

Publicado por anonymous (47 intervenciones) el 12/08/2020 00:02:38
Puedes apoyarte con Split, o bien emplear la función .indexOf() que devuelve la posición del caracter a buscar

Hay varias formas de hacerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con cadenas de caracteres

Publicado por Kabuto (1381 intervenciones) el 12/08/2020 00:17:40
Con un bucle for puedes recorrer el String.

Para acceder a cada caracter, usas el método charAt() y preguntas si dicho carácter es una coma:

1
2
3
4
5
for (int i = 0; i < cadena.length(); i++) {
    if (cadena.charAt(i) == ',') {
 
    }
}

Si no es una coma, no haces nada, dejas que el bucle se repita.
Si es una coma, entonces lo que te interesa ahora es acceder al siguiente carácter, por lo tanto, automáticamente incrementas el indice del bucle y coges el carácter siguiente.

Y analizas cuál dígito es, por ejemplo con un switch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0; i < cadena.length(); i++) {
    if (cadena.charAt(i) == ',') {
        i++; //Pasamos al siguiente carácter
        char digito = cadena.charAt(i);
        switch(digito) {
                case '1':
                        //Cuento un 1
                        break;
                case '2':
                        //Cuento un 2
                        break;
                //etc....
        }
    }
}

Para contar los dígitos, puedes usar 9 variables distintas declaradas previamente:
1
2
3
4
5
int digitos1 = 0;
int digitos2 = 0;
int digitos3 = 0;
int digitos4 = 0;
//etc...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0; i < cadena.length(); i++) {
    if (cadena.charAt(i) == ',') {
        i++; //Pasamos al siguiente carácter
        char digito = cadena.charAt(i);
        switch(digito) {
                case '1':
                        digitos1++;
                        break;
                case '2':
                        digitos2++;
                        break;
                //etc....
        }
    }
}

O más eficiente, usar un array de 9 elementos, cada uno de ellos para contabilizar uno de los dígitos:

1
int[] digitos = new int[9];



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i = 0; i < cadena.length(); i++) {
    if (cadena.charAt(i) == ',') {
        i++; //Pasamos al siguiente carácter
        char digito = cadena.charAt(i);
        switch(digito) {
                case '1':
                        digitos[0]++; //En posicion 0 contamos los 1
                        break;
                case '2':
                        digitos[1]++; //En posicion 1 contamos los 2
                        break;
                //etc....
        }
    }
}


Ya luego solo quedaría mostrar los resultados, que al tenerlos en un array, será más rápido mostrarlos usando otro bucle para recorrerlo.

Inténta escribir un código basándote en estos ejemplos. Si no te funciona, te atascas, algo no entiendes... comparte aquí tu código y te ayudamos a completarlo.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con cadenas de caracteres

Publicado por Rodrigo (623 intervenciones) el 12/08/2020 03:45:00
Notar que solo hay que contar despues de la coma, no todos los numeros que aparezcan.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 27
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con cadenas de caracteres

Publicado por NAKER (8 intervenciones) el 12/08/2020 23:00:35
Muchísimas graciaaas, he conseguido realizarlo con
exito <3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar