Java - Ayuda con cadenas de caracteres

 
Vista:
sin imagen de perfil
Val: 27
Ha disminuido su posición en 5 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/10/2020 12:43:44
Hola buenas, necesito un programa que dado una secuencia de caracteres como esta:
",12,34,56,78,34,23,45,567,3452,43246"
me cuente los dígitos una posición a la derecha de la coma, por ejemplo, en el ",12" analizaría la coma, pasaría al siguiente dígito y me contaría el 2 en un int llamado digito2.
Muchas 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
-1
Responder
Imágen de perfil de Sandro
Val: 454
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con cadenas de caracteres

Publicado por Sandro (160 intervenciones) el 11/10/2020 22:27:53
y que llevas
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
sin imagen de perfil
Val: 27
Ha disminuido su posición en 5 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/10/2020 13:07:06
Por ahora solo he conseguido que me cuente el primer dígito haciéndolo de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package cadena;
 
import java.util.Scanner;
 
public class cadena {
    public static void main(String[] args) {
        int digitos1 = 0;
        int digitos2 = 0;
        int digitos3 = 0;
        int digitos4 = 0;
        int digitos5 = 0;
        int digitos6 = 0;
        int digitos7 = 0;
        int digitos8 = 0;
        int digitos9 = 0;
        String cadena =",12,34,56,78,34,23,45,567,3452,43246";
        for (int i = 0; i < cadena2.length(); i++) {
            if (cadena2.charAt(i) == ',') {
                i++; // Pasamos al siguiente carácter
                char digito = cadena2.charAt(i);
                switch (digito) {
                case '1':
                    digitos1++;
                    break;
                case '2':
                    digitos2++;
                    break;
                case '3':
                    digitos3++;
                    break;
                case '4':
                    digitos4++;
                    break;
                case '5':
                    digitos5++;
                    break;
                case '6':
                    digitos6++;
                    break;
                case '7':
                    digitos7++;
                    break;
                case '8':
                    digitos8++;
                    break;
                case '9':
                    digitos9++;
                    break;
                }
            }
        }
        System.out.println("1-" + digitos1 + " 2-" + digitos2 + " 3-" + digitos3 + " 4-" + digitos4 + " 5-"
                + digitos5 + " 6-" + digitos6 + " 7-" + digitos7 + " 8-" + digitos8 + " 9-" + digitos9);
 
    }
}
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 Rodrigo
Val: 1.977
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 Rodrigo (529 intervenciones) el 12/10/2020 16:02:01
Tu logica esta casi bien.
Al chequear si el caracter es coma, te lo saltas (haces i++) y luego lees el siguiente caracter y lo cuentas, todo dentro de la misma vuelta del ciclo for.
A la siguiente vuelta del ciclo for, el caracter ya no es "," y no existe logica que considere este caso, es solo el if con el caso igual a "," que tienes considerado.

Sugiero que inviertas la logica, actua solo si NO ves una coma y no hagas nada en el caso que exista coma, el ciclo naturalmente hara i++ al final de cada vuelta, por lo que se saltara la coma si es que aparece.
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
sin imagen de perfil
Val: 27
Ha disminuido su posición en 5 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/10/2020 16:14:12
¿Pero eso haría que contara todos los dígitos hasta la siguiente coma no? En mi caso solo quiero que cuente el segundo o el tercero o el cuarto si existe. En el programa que he adjuntado cuento el primer dígito ahora me hace falta el segundo.
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 Rodrigo
Val: 1.977
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 Rodrigo (529 intervenciones) el 12/10/2020 16:48:54
No entiendo bien lo que quieres lograr, podrias explicar que es lo que esperas calcular con la entrada que tienes?
Cual es la salida esperada?
Con las modificaciones que propongo cuentas los digitos sin contar las comas, posiblemente no es lo que necesitas.
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 disminuido su posición en 5 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/10/2020 18:46:25
Me explico mejor, estoy desarrollando un pequeño trabajo matemático relacionado con la probabilística, ahora mismo mi campo de estudio es una colección de unos 78000 números separados unos de otros por comas. Con el programa que he adjuntado logré contabilizar cuantos 1,2,3,4,5... aparecían en el primer dígito de cada número. Ahora tengo que calcular cuantos aparecen en el segundo dígito. Repito todo ello con fines probabilísticos. El problema es que al ser una cadena tan grande no puedo desplazar manualmente la coma de posición para que utilizando el programa anterior me cuente el segundo, tercer o cuarto dígito... Por eso mi pregunta era que si se podía hacer alguna modificación en mi programa actual para lograr mi objetivo. Espero que me puedan ayudar si igualmente conocen otros lenguajes donde se pueda desarrollar este mismo problema o alguna otra manera de poder desplazar esa coma de forma no manual lo tendré en cuenta. Muchas gracias de antemano.
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 Sandro
Val: 454
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con cadenas de caracteres

Publicado por Sandro (160 intervenciones) el 12/10/2020 21:09:25
lo que te estan pidiendo es esto

entrada

4553,553,5353,535,3553,777

salida
primer digito es 29 / 6 = 4.83
segundo digito 28 / 6 = 4.66
tercer digito es 30 / 6 = 5
cuarto digito es 9 / 3 = 3

eso es lo que se entiende, eso es lo que yo entiendo o
17, 13, 16, 13, 16, 21

o
6,6,6,3

la verdad no se
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 Sandro
Val: 454
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con cadenas de caracteres

Publicado por Sandro (160 intervenciones) el 12/10/2020 21:29:09
viendo el programa ya se que quieres hacer

4553,553,5353,535,3553,777

digito1 = 0
digito2 = 0
digito3 = 7
digito4 = 1
digito5 = 10
digito6 = 0
digito7 = 3
digito8 = 0
digito9 = 0

no veo mucho sentido, me late que tu análisis de estadisticas esta mal, además nada mas tienes 9 elementos.

Yo pienso que si tenemos 9 elementos, y hay una multitud, y para mi el mejor es el 5, saber cuantos votaron por el cinco, y los demás elementos, el análisis esta mal
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: 1.977
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 Rodrigo (529 intervenciones) el 13/10/2020 00:41:21
Te conviene usar split para separar los numeros que tienes
Te conviene tener una matriz bidimensional, count[][]
la primera dimension tan larga como el mas largo de los numeros, la segunda dimension de largo 10 (o al reves).

Con split tendras un arreglo de strings.
Recorres el arreglo, por cada iteracion estaras revisando 1 string. Te saltas los strings vacios.
Otro ciclo adentro para visitar cada uno de los caracteres de ese string.
El indice de ese ciclo sera el primer indices de la matriz. El segundo indice sera el numero que lees (el caracter) y le restas '0', incrementas ese valor especifico de la matriz.

Finalmente la matriz tendra los valores que buscas, en la posicion count[i][j] tendras los numeros j que aparecieron en la posicion i (le sumas 1 para que se vea de 1 en adelante)
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 Rodrigo
Val: 1.977
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 Rodrigo (529 intervenciones) el 13/10/2020 05:56:34
Si entendi bien, la salida correspondiente a la entrada que diste como ejemplo seria

Numeros:
1
2
3
4
5
6
7
8
9
10
12
34
56
78
34
23
45
567
3452
43246

Cuentas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
~~ Posicion 1
  numero: 1 cantidad: 1
  numero: 2 cantidad: 1
  numero: 3 cantidad: 3
  numero: 4 cantidad: 2
  numero: 5 cantidad: 2
  numero: 7 cantidad: 1
~~ Posicion 2
  numero: 2 cantidad: 1
  numero: 3 cantidad: 2
  numero: 4 cantidad: 3
  numero: 5 cantidad: 1
  numero: 6 cantidad: 2
  numero: 8 cantidad: 1
~~ Posicion 3
  numero: 2 cantidad: 1
  numero: 5 cantidad: 1
  numero: 7 cantidad: 1
~~ Posicion 4
  numero: 2 cantidad: 1
  numero: 4 cantidad: 1
~~ Posicion 5
  numero: 6 cantidad: 1
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 disminuido su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con cadenas de caracteres

Publicado por NAKER (8 intervenciones) el 13/10/2020 08:53:20
Siii eso es justo lo que necesitaba, leeré tus instrucciones detenidamente y lo probaré. Si tengo problemas nuevamente me comunicaré por el foro. Muchas gracias.
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 disminuido su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con cadenas de caracteres

Publicado por NAKER (8 intervenciones) el 13/10/2020 17:51:31
He intentado desarrollar el código siguiendo tus instrucciones pero se escapan a mi compresión y habilidad programando. Si has mandado esa salida es porque entiendo que hicistes el código, ¿si es así podrías mandarlo?
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