一个合并字冠的问题,估计没有描述清楚……,进贴看详细描述
是这样的,给一组数据 比如
13712345670
13712345671
13712345672
13712345673
13712345674
13712345675
13712345676
13712345677
13712345678
13712345679
13712345670
就可以合并为一个字冠1371234567
如果数据中还有
1371234560
1371234561
1371234562
1371234563
1371234564
1371234565
1371234566
1371234568
1371234569
就还可以合并成
137123456
最后剩下的就是一些不能在合并的字冠组;
比如中国所有理论上的手机号码做输入数据的话,最后的结果就是 13 和15
这样,每天都有很多很多很多条数据,比如200w条在sql server里
我的方法是做一颗树,然后每个节点有10个叶子就剪掉他的叶子,让这个节点做叶子。
但是这样要把整个数据都读到内存。
各位大大有没有什么更好的办法。
er……,说那么多,不知道描述清楚了没
[解决办法]
得不偿失
[解决办法]
package com.lihan;public class testNum { public Long sum(Long[] i){ Long max=i[0]; for(int k=0;k<i.length;k++) { if(i[k]>max) { max=i[k]; } } return max; } /** * @param args * @author 李晗 */ public static void main(String[] args) { String[] num={"13712345671","13712345672","13712345673","13712345674","13712345675","13712345676","13712345677","13712345678"}; Long[] j=new Long[num.length]; for(int i=0;i<num.length;i++) { j[i]=Long.parseLong(num[i]); } testNum t=new testNum(); Long sum=t.sum(j); String str=String.valueOf(sum); String s=num[0]; for(int x=0;x<s.length();x++) { if(str.charAt(x)==s.charAt(x)) { System.out.print(str.charAt(x)); } } // TODO Auto-generated method stub }}