字符串的处理 如何把字符串 String str="01,01,02,03,03,10";处理为: String StrTwo ="0102,2001,0302,1001"; (4位中前两位标识字符串,后两位表示重复次数。如0102表示有02个01) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Map<String,Integer> map=new HashMap<String,Integer>(); String str="01,01,02,03,03,10"; String[] ss=str.split(","); for(String s:ss){ Integer count=map.get(s); if(count==null){ map.put(s, 1); }else{ map.put(s, count+1); } } String result=""; for(Entry<String,Integer> e:map.entrySet()){ if(!"".equals(result)){ result+=","; } result+=(e.getKey()+(e.getValue()<10?("0"+e.getValue()):e.getValue())); } System.out.println(result); package a;import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class Test5 { /** * @param args * @author sunstar * @date 2012-7-18 下午5:29:53 */ public static void main(String[] args) { String str ="01,01,02,03,03,10"; Map<String, Integer> map = new HashMap<String, Integer>() ; String arrs[] = str.split(",") ; String tmp = "" ; int num = 0 ; for (int i = 0; i < arrs.length; i++){ tmp = arrs[i] ; if (map.get(tmp) != null){ num = map.get(tmp)+ 1 ; }else num = 1 ; map.remove(tmp) ; map.put(tmp, num) ; } Iterator it = map.keySet().iterator() ; StringBuffer sb = new StringBuffer() ; while(it.hasNext()){ tmp = (String) it.next() ; sb.append(intToFormatStr(map.get(tmp), 2) +tmp ) ; sb.append(",") ; System.out.println(tmp + " --" + map.get(tmp)+"次") ; } System.out.println(sb.toString().substring(0,sb.toString().length()-1)) ; } public static String intToFormatStr(int value, int len){ String str = value +""; while(str.length() < len){ str = "0" + str ; } return str ; }}10 --1次01 --2次02 --1次03 --2次0110,0201,0102,0203 关于javamail发送图片的问题 在用到一个年月控件的时候出现的问题,希望帮忙 JSP2.0表达式问题 父窗口如何调用子iframe的元素及方法呢。。。。。。 axis的API myeclipse发布时如何包含引用JDK中的包? 各位高手请帮忙看看 哪有JBUILDER开发类的电子书籍下载? java解析xml,求助。 关于Spring IOC注入值的问题 HttpClient模拟IE浏览器 ServerSocket模拟服务器的例子 请问各位大侠,Flex怎么学?
Map<String,Integer> map=new HashMap<String,Integer>();
String str="01,01,02,03,03,10";
String[] ss=str.split(",");
for(String s:ss){
Integer count=map.get(s);
if(count==null){
map.put(s, 1);
}else{
map.put(s, count+1);
}
}
String result="";
for(Entry<String,Integer> e:map.entrySet()){
if(!"".equals(result)){
result+=",";
}
result+=(e.getKey()+(e.getValue()<10?("0"+e.getValue()):e.getValue()));
}
System.out.println(result);
import java.util.Iterator;
import java.util.Map;public class Test5 { /**
* @param args
* @author sunstar
* @date 2012-7-18 下午5:29:53
*/
public static void main(String[] args) {
String str ="01,01,02,03,03,10"; Map<String, Integer> map = new HashMap<String, Integer>() ;
String arrs[] = str.split(",") ;
String tmp = "" ;
int num = 0 ;
for (int i = 0; i < arrs.length; i++){
tmp = arrs[i] ;
if (map.get(tmp) != null){
num = map.get(tmp)+ 1 ;
}else
num = 1 ;
map.remove(tmp) ;
map.put(tmp, num) ;
}
Iterator it = map.keySet().iterator() ;
StringBuffer sb = new StringBuffer() ;
while(it.hasNext()){
tmp = (String) it.next() ;
sb.append(intToFormatStr(map.get(tmp), 2) +tmp ) ;
sb.append(",") ;
System.out.println(tmp + " --" + map.get(tmp)+"次") ;
}
System.out.println(sb.toString().substring(0,sb.toString().length()-1)) ; }
public static String intToFormatStr(int value, int len){
String str = value +"";
while(str.length() < len){
str = "0" + str ;
}
return str ;
}}10 --1次
01 --2次
02 --1次
03 --2次
0110,0201,0102,0203