SKU



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());  


}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值