1. 程式人生 > 其它 >統計字串出現的次數

統計字串出現的次數

package com.AnLI;
/*
需求:
鍵盤錄入一個字串,要求統計字串中每個字串出現的次數

思路:
1.鍵盤錄入一個字串
2.建立HashMap集合,鍵是character,值是Integer
3.遍歷字串得到每一個字元
4.拿得到的每一個字元作為鍵去hashmap中去找對應的值,看其返回值
如果返回值是null:說明改字元在hashmap集合中不存在,就把該字元作為鍵,1作為值儲存
如果返回值不是null:說明該字元在hashmap集合中存在,把該值加1,然後重新儲存該字元和對應的值
5.遍歷hashmap集合,得到鍵和值,按照要求進行拼接
6.輸出結果
*/
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

public class HashMapDemo {
public static void main(String[] args) {
//鍵盤錄入一個字串
Scanner sc = new Scanner(System.in);
System.out.println("請輸入:");
String s = sc.nextLine();
//建立hashmap集合
HashMap<Character,Integer> map = new HashMap<>();
//3.遍歷字串得到每一個字元
for (int i=0;i<s.length();i++){
char key = s.charAt(i);
//4.拿得到的每一個字元作為鍵去hashmap中去找對應的值,看其返回值
Integer value = map.get(key);
if (value == null){
//如果返回值是null:說明改字元在hashmap集合中不存在,就把該字元作為鍵,1作為值儲存
map.put(key,1);
}else {
//如果返回值不是null:說明該字元在hashmap集合中存在,把該值加1,然後重新儲存該字元和對應的值
value++;
map.put(key,value);
}
}
//5.遍歷hashmap集合,得到鍵和值,按照要求進行拼接
StringBuilder sb = new StringBuilder();

Set<Character> keyset = map.keySet();
for (Character key : keyset){
Integer value = map.get(key);
sb.append(key).append("(").append(value).append(")");
}
String s1 = sb.toString();
System.out.println(s1);
}
}