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

人未眠 2013-11-09 05:19:37
各位大神,请教一段算法
一字符串:String str="10,16,0,8,19,11,16,10,16,5,17,11,16,13,3";
数字使用逗号隔开,统计出每个数字出现的次数。使用map<数字,次数>;
谢谢。
...全文
430 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishikai500 2013-11-10
  • 打赏
  • 举报
回复
你们这样直接把code写出来,还让别人学什么!!!
观鱼塘主 2013-11-10
  • 打赏
  • 举报
回复

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);
}
Asura_X_Y_Y 2013-11-09
  • 打赏
  • 举报
回复
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
L6310955572 2013-11-09
  • 打赏
  • 举报
回复
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); } }
拦截机 2013-11-09
  • 打赏
  • 举报
回复
1.可以得到数字的数组,然后排序统计 2.也可以直接统计每次得到一个字符,存放map,有+1, 没有添加 我是里混的
WayneXuan 2013-11-09
  • 打赏
  • 举报
回复
这样似乎更好

for (String strData : data) {
	if (countMap.containsKey(strData)) {
		countMap.put(strData,countMap.get(strData)+1);
	} else {
		countMap.put(strData,1);
	}
}
xiaozhou10 2013-11-09
  • 打赏
  • 举报
回复
1.可以得到数字的数组,然后排序统计
2.也可以直接统计每次得到一个字符,存放map,有+1,
没有添加
人未眠 2013-11-09
  • 打赏
  • 举报
回复
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()); } }

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧