Java作业(热身和扩展题):统计单个或每个字符出现次数,Object面试题等详细图析

热身题(由简单题到扩展题,循序渐进更加便于理解):
统计"一闪一闪亮晶晶,漫天都是小星星"中,字符”晶“出现的次数:
package a;
public class demo{
public static void main(String[] args) {
String str="一闪一闪亮晶晶,漫天都是小星星";
int count=0;//统计次数的变量
int start=0; //每次改变的位置
while((start=str.indexOf("晶",start))!=-1){
start++;//位置要改变
count++;//次数++
}
System. out . println("晶出现了"+count+"次");
}}

扩展题:
统计"一闪一闪亮晶晶,漫天都是小星星"中每个字符出现次数:
package a;
import java.util.HashMap;
import java.util.Set;
public class demo {
public static void main(String[] args) {
String str = "一闪一闪亮晶晶,漫天都是小星星";
HashMap<Object, Integer> h = new HashMap<Object, Integer>();
// 使用循环将每个字符保存起来
for (int i=0; i <str.length(); i++) {
// 判断map集合的键是否存在
if (h.containsKey(str.charAt(i))) {// 重复的时候,如果键是存在的就让其值(出现的次数)+1
int cishu =h.get(str.charAt(i));// 得到了重复的时候的值
cishu++;h.put(str . charAt(i),cishu);
} else {
h.put(str.charAt(i),1);
// 如果键不存在,其值(出现的次数)就是1
}}
Set<Object> s=h.keySet();
for(Object i:s){
System.out. println("文字"+i+"出现了"+h.get(i));
}
}}





