当前位置:编程学习 > JAVA >>

java 字符串 使用符号隔开统计数字出现的次数

各位大神,请教一段算法
一字符串:String str="10,16,0,8,19,11,16,10,16,5,17,11,16,13,3";
数字使用逗号隔开,统计出每个数字出现的次数。使用map<数字,次数>;
谢谢。 字符出现的次数 --------------------编程问答-------------------- public void getCount(String str) {
if ("".equals(str)) {
return;
}

String data[] = str.split(",");
Map<String, Integer> countMap = new HashMap<String, Integer>();
for (String strData : data) {
int count = 1;
if (countMap.containsKey(strData)) {
count += countMap.get(strData);
}
countMap.put(strData, count);
}

for (Map.Entry<String, Integer> entry : countMap.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}

} --------------------编程问答-------------------- 1.可以得到数字的数组,然后排序统计
2.也可以直接统计每次得到一个字符,存放map,有+1,
                                   没有添加 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 这样似乎更好

for (String strData : data) {
if (countMap.containsKey(strData)) {
countMap.put(strData,countMap.get(strData)+1);
} else {
countMap.put(strData,1);
}
}
--------------------编程问答-------------------- 1.可以得到数字的数组,然后排序统计
2.也可以直接统计每次得到一个字符,存放map,有+1,
                                   没有添加 
我是里混的 --------------------编程问答--------------------
import java.util.HashSet;
import java.util.HashMap;
public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
String str="10,16,0,8,19,11,16,10,16,5,17,11,16,13,3";
String temp[] = str.split(",");
HashSet <String>myset = new HashSet<String>();
HashMap <String, Integer>mymap = new HashMap<String, Integer>();
for (int i = 0 ; i < temp.length; i++) {
if (myset.add(temp[i])) {
mymap.put(temp[i],1);
} else {
mymap.put(temp[i], ((Integer)mymap.get(temp[i]) + 1));
}
}
System.out.println(mymap);
}

}
--------------------编程问答--------------------
import java.util.HashMap;
import java.util.Map.Entry;

public class TestMain {

public static void main(String[] args) {

String str="10,16,0,8,19,11,16,10,16,5,17,11,16,13,3";
String[] numbers = str.split(",");

java.util.Map<String,Integer> maps = new HashMap<String,Integer>();
for(String s : numbers){
if(maps.containsKey(s)){
int num = maps.get(s);
num++;
maps.put(s, num);
}else{
maps.put(s, 1);
}
}

for(Entry<String, Integer> entry : maps.entrySet()){
System.out.println("数字:"+entry.getKey()+",出现次数:"+entry.getValue());
}
}

}


结果:
数字:0,出现次数:1
数字:11,出现次数:2
数字:13,出现次数:1
数字:3,出现次数:1
数字:16,出现次数:4
数字:5,出现次数:1
数字:17,出现次数:1
数字:8,出现次数:1
数字:19,出现次数:1
数字:10,出现次数:2
--------------------编程问答-------------------- 你们这样直接把code写出来,还让别人学什么!!! --------------------编程问答--------------------

String str="10,16,0,8,19,11,16,10,16,5,17,11,16,13,3";
String[] numbers = str.split(",");
Map<String,Integer> countMap= new HashMap<String,Integer>();
for(String num: numbers ){
  
   countMap.contain(num) ? countMap.put(strData,countMap.get(strData)+1) : countMap.put(strData,1);
}
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,