Java - contar palabras

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

contar palabras

Publicado por Cesar (5 intervenciones) el 02/09/2019 00:36:57
hola chicos alguno me podría ayudar con lo siguiente se lo agradecería mucho
como contar cuantas letras tiene una cadena sin incluir los espacios que hay entre las palabras
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
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

contar palabras

Publicado por Yamil Bracho (2315 intervenciones) el 02/09/2019 01:15:59
Es letras o palabras ? Si es letras pudiera ser algo como :
1
2
3
4
5
6
7
8
9
10
11
12
13
public static int CountLetters(string s) {
	int result = 0;
 
	if (s != null) {
	  int len = s.length();
          for (int i = 0; i < len; i++) {
            if (Character.isLetter(s.charAt(i))) {
                result++;
            }
	}
 
	return result;
}
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: 10
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

contar palabras

Publicado por Cesar (5 intervenciones) el 02/09/2019 15:47:53
si son letras que pena.
ya entendí pero mira que cuando es una cadena por medio de archivos, si le doy enter dentro del archivo y escrivo otra palabra me toma el enter como una letra
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: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

contar palabras

Publicado por Yamil Bracho (2315 intervenciones) el 03/09/2019 03:13:12
Que extraño porque segun la documentacion

A character is considered to be a letter if the general category type provided by the Character.getType(ch) is one of the following:

UPPERCASE_LETTER.
LOWERCASE_LETTER.
TITLECASE_LETTER.
MODIFIER_LETTER.
OTHER_LETTER
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: 10
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

contar palabras

Publicado por Cesar (5 intervenciones) el 03/09/2019 03:46:23
Que pena era un salto de línea y no lo vi
Muchas gracias de los agradezco
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

contar palabras

Publicado por Billy Joel (876 intervenciones) el 03/09/2019 16:03:21
Creo que quieres algo como esto:
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
import java.util.LinkedHashMap;
import java.util.Map;
 
public class Main {
    //public static void ordenamientoArreglos(String[] palabras, int[] apariciones) {
    public static LinkedHashMap<Character, Integer> ordenar(Map<Character, Integer> m) {
        char[] caracter = new char[m.size()];
        int[] apariciones = new int[m.size()];
        int a = 0;
        for (char c : m.keySet()) {
            caracter[a] = c;
            apariciones[a] = m.get(c);
            a++;
        }
        //Aquí ordenamos por burbuja
        for (int i = caracter.length - 1; i > 0; i--) {
            for (int j = 0; j < i; j++) {
                if (j + 1 <= i && apariciones[j] < apariciones[j + 1]) {
                    char aux = caracter[j];
                    int iux = apariciones[j];
                    caracter[j] = caracter[j + 1];
                    apariciones[j] = apariciones[j + 1];
                    caracter[j + 1] = aux;
                    apariciones[j + 1] = iux;
                }
            }
        }
        //Aquí cargamos el mapa ordenado
        LinkedHashMap<Character, Integer> o = new LinkedHashMap();
        for (int i = 0; i < apariciones.length; i++) {
            o.put(caracter[i], apariciones[i]);
        }
        return o;
    }
 
    public static void main(String[] args) {
        String cadena = "Hola Cesar, soy yo Billy jaja... esta es una cadena y vamos a contar sus caracteres";
        LinkedHashMap<Character, Integer> m = new LinkedHashMap();
        for (char c : cadena.toCharArray()) {
            m.put(c, m.containsKey(c) ? m.get(c) + 1 : 1);
        }
        LinkedHashMap<Character, Integer> ordenado = ordenar(m);
        System.out.println("A continuación el conteo");
        ordenado.forEach((k, v) -> {
            System.out.println(k + ": " + v);
        });
    }
}

Espero que te sirva...
Saludos!!
Billy Joel
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