一、字符串拼接的工具类

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. Codeforce385C 树状数组+素因子分解

    题目大意: 给多个区间的询问,在询问区间内每一个出现的素数去计算所有数中有多少个数能被这个素数整除 然后将所有素数得到的对应值求和 这里因为初始给定的数不超过10000000,最多670000不到的素 ...

  2. POJ 3648 2-sat

    题目大意: 有一对新人结婚,邀请n对夫妇去参加婚礼. 有一张很长的桌子,人只能坐在桌子的两边,还要满 足下面的要求:1.每对夫妇不能坐在同一侧 2.n对夫妇 之中可能有通奸关系(包括男男,男女,女女) ...

  3. LightOJ 1047-Program C

    Description The people of Mohammadpur have decided to paint each of their houses red, green, or blue ...

  4. Android 之 JSON操作

    Android默认已经集成了操作JSON相关的API,如下所示: 也可以不使用JSON工具类,直接使用字符串拼接. 注意:可以使用字符串来构造JSONArray和JSONObject,这就是JSON解 ...

  5. mine layer(2008 World Final C)

    类似于扫雷游戏,在一些格子中散布着一些地雷,具体的埋藏位置并不清楚,但知道每个格子及其周围八个格子的地雷总数.请问此时正中间那一行最多可能有多少地雷(题目假定所有的输入都是奇数行的)? 输入: 第一行 ...

  6. hdu2196 树的直径 + bfs

    //Accepted 740 KB 15 ms //树的直径 //距离一个顶点最远的点一定是树的直径的一个端点 #include <cstdio> #include <cstring ...

  7. detangle c++ symbols

    hust$ c++filt  _ZN1AC2Ev hust$A::A()

  8. WEB ui快速构建

    http://www.runoob.com/bootstrap/bootstrap-ui-editor.html 1http://pingendo.com/ 2http://www.layoutit. ...

  9. iOS:死锁

    死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进. 安全状态与不安全状态:安全状态指系统能按某个进程顺序来为每个进程分配其所需资源,直至最大需求,使每个进程 ...

  10. (并查集 or BFS+二分)HDU5652

    点击打开链接 并查集: #include<cstdio> #define N 505 using namespace std; struct node { int x,y; }; char ...