Caso: contando el número de caracteres
demanda:
- El teclado ingresa una cadena de caracteres y se requiere contar el número de ocurrencias de cada cadena de caracteres en la cadena.
- Ejemplo: entrada de teclado "aababcabcdabcde" y salida en la consola: "a (5) b (4) c (3) d (2) e (1)"
Ideas:
- Para lograr estadísticas, se requieren dos columnas, por lo que el conjunto de mapas se usa para estadísticas. La clave se puede usar para almacenar el carácter actual y el valor se usa para almacenar el número de ocurrencias del carácter (porque la clave no se puede repetir , el valor se puede sobrescribir)
Implementación:
- Primero cree un objeto de escáner para recibir una cadena de estadísticas desde el teclado
- Atraviesa la cuerda y juzga al mismo tiempo
- Obtiene el valor del mapa, si es nulo, significa el primer almacenamiento, es decir, la clave se agrega a la colección y el valor es 1
- Si el valor obtenido no es nulo, saque el valor y +1 y vuelva a almacenarlo
- Estadísticas al final de este ciclo
- La cadena empalmada se puede empalmar con el objeto StringBuild para atravesar según sea necesario
- El código detallado es el siguiente:
resultado de la operación:
package cn.dreamyi.demo1.doudizhu;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
public class CountNums {
public static void main(String[] args) {
/**
* - 案例需求
*
* - 键盘录入一个字符串,要求统计字符串中每个字符串出现的次数。
* - 举例:键盘录入“aababcabcdabcde” 在控制台输出:“a(5)b(4)c(3)d(2)e(1)”
*
* -
*/
//键盘接受一个字符串1
String line = new Scanner(System.in).nextLine();
TreeMap<Character, Integer> hm = new TreeMap<>();
for (int i = 0; i < line.length(); i++) {
Character c = line.charAt(i);//得到每个字符
//首次存取
if (hm.get(c) == null) {
hm.put(c, 1);
} else {
//非首次
Integer count = hm.get(c);
count++;
hm.put(c, count);
}
}
StringBuilder sb = new StringBuilder();
Set<Character> key = hm.keySet();
for (Character c :key){
sb.append(c).append("(").append(hm.get(c)).append(")");
}
String s = sb.toString();
System.out.println(s);
}
}
Cuenta pública: a partir de enero [mmk_xgg]
Preste atención al progreso juntos