import java.util.HashMap;
import java.util.Map;
public class SKUAnalytic {
/**
*
* 对应题目<br>
*
* 1、分解SKU字符串<br>
*
* 2.1 、返回的SKU 顺序与 字符串中的SKU顺序一致<br>
*
*/
public Map<String,Integer> analytic(String skus){
Map<String,Integer> map = new HashMap<String,Integer>();
if(null != skus && !"".equals(skus)){
skus = skus.replaceAll("\\^", "-");
String skusArray [] = skus.split(",");
String skuArray [] = null;
for(String sku : skusArray ){
skuArray = sku.split("-");
if(skuArray.length == 1){
map.put(skuArray[0], 1);
}else{
map.put(skuArray[0],Integer.parseInt(skuArray[1]));
}
}
}
return map;
}
/**
*
* 对应题目<br>
*
* 2.1 、重复的SKU 整合在一起
*
*/
public Map<String,Integer> analyticAndRepeat (String skus){
Map<String,Integer> map = new HashMap<String,Integer>();
if(null != skus && !"".equals(skus)){
skus = skus.replaceAll("\\^", "-");
String skusArray [] = skus.split(",");
String skuArray [] = null;
String skuKey = null;
for(String sku : skusArray ){
skuArray = sku.split("-");
// 判断 map中SUK是否已经存在,存在则value 叠加
skuKey = skuArray[0];
if(map.containsKey(skuArray[0])){
if(skuArray.length == 1){
map.put(skuKey, map.get(skuKey)+1);
}else{
map.put(skuKey,map.get(skuKey)+Integer.parseInt(skuArray[1]));
}
}else{
if(skuArray.length == 1){
map.put(skuKey,1);
}else{
map.put(skuKey,Integer.parseInt(skuArray[1]));
}
}
}
}
return map;
}
public static void main(String[] args) {
SKUAnalytic sku = new SKUAnalytic();
Map<String,Integer> resultMap = sku.analytic("DV7^10,DV8,DV9^50,DV7^20");
for (Map.Entry<String, Integer> entry : resultMap.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
System.out.println(" ================================= ");
resultMap = sku.analyticAndRepeat("DV7^10,DV8,DV9^50,DV7^20");
for (Map.Entry<String, Integer> entry : resultMap.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
}
}