java求助!!!

有个数组123456123456123456879687123456689098879687689098经过编码后使得统计出123456487968726890982(最... 有个数组

123456
123456
123456
879687
123456
689098
879687
689098

经过编码后使得统计出
123456 4
879687 2
689098 2(最好是个数组形式的)
展开
 我来答
yugi111
2014-04-10 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class DButil
{
    public static void main ( String[] args )
    {
        String[] infos = {"123456",       
                          "123456",       
                          "123456",       
                          "879687",      
                          "123456",       
                          "689098",       
                          "879687",    
                          "689098",
                          "11111"};
         
        Arrays.sort (infos);
        String result = Arrays.toString (infos).replaceAll ("[\\[\\]\\s]", "") + ",";
        String reg = "(\\d+,)\\1*";
        Pattern p = Pattern.compile (reg);
        Matcher m = p.matcher (result);
        while (m.find ())
        {
            String group = m.group ();
            String title = group.split (",")[0];
            System.out.println (title + " \t" + (group.split (title).length - 1));
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-04-10
展开全部
定义这个数组是String[] a ;
先做个排序,从小到大。
然后a[0]和后面的做比较,看看有多个个和a[0]相同的,有3个;
然后0+3+1=4,a[4]和后面的做比较,有1个相同;
然后4+1+1=6,a[6]和后面的做比较,有1个相同;
此时比到了6+1=7,a[7],也就是7+1=8个数了;
a.length<=8,停止.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
datiewangzi
2014-04-10 · 超过18用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:51.4万
展开全部
思路:
用HashMap<K,V>,k就是123456,879687那些 ,V就是次数;
遍历数组,如果存在K,就+1,不存在K 在里边加一个K
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l落花流水l
2014-04-10 · 超过20用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:47.2万
展开全部
public static void main(String[] args){
int[] a = {123456,123456,123456,879687,123456,689098,879687,689098};
Map<Integer,Integer> b = new HashMap<Integer,Integer>();
for(int i=0,j=a.length;i<j;i++){
if(b.containsKey(a[i])){
b.put(a[i], b.get(a[i])+1);
}else{
b.put(a[i], 1);
}
}
for(Entry<Integer,Integer> e: b.entrySet()){
System.out.println(e.getKey()+" "+e.getValue());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wwwzhangsan
2014-04-10 · TA获得超过286个赞
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:113万
展开全部
代码如下:
String[] array = { "123456", "123456", "123456", "879687", "123456",
"689098", "879687", "689098" };
Map<String, Integer> map = new HashMap<String, Integer>();
String key = null;
int count = 0;
for (int i = 0; i < array.length; i++) {
key = array[i];
if (map.containsKey(key)) {
count = map.get(key) + 1;
} else {
count = 1;
}
map.put(key, count);
}
Iterator<String> keys = map.keySet().iterator();
while (keys.hasNext()) {
key = keys.next();
System.out.println(key + " " + map.get(key));
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式