一、字符串拼接的工具类

package blank.util;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.Vector;
import java.util.Map.Entry;

public class StringUtil {
    
    public static String jointStr(String sid,String id){
        Vector<String> ids=new Vector<String>();
        if(sid!=null&&sid.equals(id)){
            return sid;
        }else{
            //拆分
            String[] sids=sid.split(":");
            if(sids.length==1){
                return id+":"+sid;
            }else{
                for(String i:sids){
                    ids.add(i);
                }
                if(ids.contains(id)){
                    String first=ids.firstElement();
                    if(first.equals(id)){
                        return sid;
                    }else{
                        //先删除
                        ids.remove(id);
                        ids.add(0, id);
                        String newValue="";
                        for(int i=0;i<ids.size();i++){
                            String value=ids.elementAt(i);
                            if(i==0){
                                newValue=value;
                            }
                            else{
                                newValue=newValue+":"+value;
                            }
                        }
                        return newValue;
                    }
                }else{
                    return id+":"+sid;
                }
            }
        }
    }
    
    public static String jointStr(String ids,String id,Integer num){
        Map<String,Integer> map=new TreeMap<String, Integer>();
        if("".equals(ids)){
            return id+":"+num;
        }else{
            String[] tids=ids.split(",");    
            if(tids!=null){
                for(String tid:tids){
                    String[] idnum=tid.split(":");
                    map.put(idnum[0], Integer.valueOf(idnum[1]));
                }
            }
            if(map.containsKey(id)){
                map.put(id, map.get(id)+num);
                Set<Entry<String, Integer>> entities=map.entrySet();
                Iterator<Entry<String, Integer>> iter=entities.iterator();
                int count=0;
                String newValue="";
                while(iter.hasNext()){
                     Entry<String, Integer> entity=iter.next();
                     String key=entity.getKey();
                     Integer value=entity.getValue();
                     String temp=key+":"+value;
                     if(count==0){
                         newValue=temp;
                     }else{
                         newValue=newValue+","+temp;
                     }
                     count++;
                }
                return newValue;
            }else{
                ids=ids+","+id+":"+num;
                return ids;
            }
        }
    }
}

说明:第一个方法用于记录最近浏览商品的id号,拼接形式为2:3:4。当有重复浏览时,原来重复的被删除,最近一次的浏览会置前。

  第二个方法用于记录购物车的商品id和数量,拼接形式为2:1,3:4,代表含义为id为2的商品数量为1,id为3的商品数量是4。

JavaWeb学习记录(十四)——商城购物之字符串拼接实现最近浏览商品和购物车的功能的更多相关文章

  1. Spring学习记录(十四)---JDBC基本操作

    先看一些定义: 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1.core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJ ...

  2. JavaWeb学习 (二十四)————Filter(过滤器)常见应用

    一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import ja ...

  3. JavaWeb学习记录(四)——日期和数字的格式转换

    一.Date转为String (1) public class DateUtil {    private static SimpleDateFormat sdf = new SimpleDateFo ...

  4. javaweb学习总结(十四)——JSP原理

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

  5. javaweb学习总结十四(xml约束之Schema)

    一:schema约束简单介绍 1:xml Schema的定义以及优缺点 2:xml schema入门 3:命名空间 这里http://www.itcast.cn 并没有什么具体的意义,只是命名而已. ...

  6. javaweb学习总结(十四)——JSP原理(转)

    一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...

  7. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  8. Linux学习之十四、管线命令

    Linux学习之十四.管线命令 地址:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_6.php

  9. 风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击

    风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候 ...

随机推荐

  1. K2与OData和Swagger集成,从任何设备无需代码获取数据

    K2近期宣布获得了DData和Swagger REST的支持,这件事情究竟有多好呢? K2与OData和Swagger的集成,保障K2 Blackpearl的用户能建立基于工作流和表单的解决方案,最重 ...

  2. cvWaitKey

    OpenCV中的一个函数 函数原型为: C++: int waitKey(int delay=0) Python: cv2.waitKey([delay]) → retval C: int cvWai ...

  3. Windows 技术预览版 - 传言中的Win 10

    http://windows.microsoft.com/zh-cn/windows/preview-iso Windows Technical Preview 产品密钥: NKJFK-GPHP7-G ...

  4. NABCD分析

    NABCD——今日事 N(Need):开创的成就系统可以在一定程度上督促用户坚持下来. A(Approach):做一个APP软件,是在android平台构建. B(Benefit):可以逐步改变用户的 ...

  5. 找不到库文件地址,修改修改方法framework

    直接双击地址行修改

  6. Note_Master-Detail Application(iOS template)_06_ YJYDetailViewController.h

    //  YJYDetailViewController.h #import <UIKit/UIKit.h> @interface YJYDetailViewController : UIV ...

  7. IOS聊天对话界面

    大家好,百忙之中,抽出点空,写个微博,话说好久没写. 最近项目中有碰到写类似微信聊天界面上的效果,特整理了一下,写了一个小的Demo,希望给没头绪的同学们一个参考! 下载地址:http://files ...

  8. HDOJ-三部曲一(搜索、数学)-1003-Curling 2.0

    Curling 2.0 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total ...

  9. 作业1-我的第一个博客&GuiHub简单练习

    自我介绍                   姓名:苗中峰(不要问有什么含义,翻着字典取的名,翻到什么字就取了什么字)                               性别:男(不解释) ...

  10. swift 闭包+嵌套函数+extension+单例+嵌套函数+??

    //: Playground - noun: a place where people can play import UIKit //*******************嵌套函数********* ...