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,
没有添加 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 这样似乎更好
--------------------编程问答-------------------- 1.可以得到数字的数组,然后排序统计
for (String strData : data) {
if (countMap.containsKey(strData)) {
countMap.put(strData,countMap.get(strData)+1);
} else {
countMap.put(strData,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--------------------编程问答-------------------- 你们这样直接把code写出来,还让别人学什么!!! --------------------编程问答--------------------
数字:11,出现次数:2
数字:13,出现次数:1
数字:3,出现次数:1
数字:16,出现次数:4
数字:5,出现次数:1
数字:17,出现次数:1
数字:8,出现次数:1
数字:19,出现次数:1
数字:10,出现次数:2
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