java求助!!!
有个数组123456123456123456879687123456689098879687689098经过编码后使得统计出123456487968726890982(最...
有个数组
123456
123456
123456
879687
123456
689098
879687
689098
经过编码后使得统计出
123456 4
879687 2
689098 2(最好是个数组形式的) 展开
123456
123456
123456
879687
123456
689098
879687
689098
经过编码后使得统计出
123456 4
879687 2
689098 2(最好是个数组形式的) 展开
6个回答
展开全部
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,停止.
先做个排序,从小到大。
然后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,停止.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
思路:
用HashMap<K,V>,k就是123456,879687那些 ,V就是次数;
遍历数组,如果存在K,就+1,不存在K 在里边加一个K
用HashMap<K,V>,k就是123456,879687那些 ,V就是次数;
遍历数组,如果存在K,就+1,不存在K 在里边加一个K
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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());
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码如下:
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));
}
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));
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询