一、字符串拼接的工具类

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. 【STL】-pair的用法

    初始化: std::pair<int, float> p; //initialize p.first and p.second with zero std::pair<int, co ...

  2. Android调用Sqlite数据库时自动生成db-journal文件的原因

    数据库为了更好实现数据的安全性,一半都会有一个Log文件方便数据库出现意外时进行恢复操作等.Sqlite虽然是一个单文件数据库,但麻雀虽小五脏俱全,它也会有相应的安全机制存在 这个journal文件便 ...

  3. Xp 消息队列的使用

    1.安装消息队列3.0: 控制面板/添加删除程序/添加window组件/找到消息队列/选择->详细信息->MSMQ HTTP支持. 注意:如果计算机没有连接到域需要去掉Active Dir ...

  4. PHP及Javascript 正则判断中文(转)

    UTF-8匹配: 在javascript中,要判断字符串是中文是很简单的.比如: var str = "php编程"; if (/^[\u4e00-\u9fa5]+$/.test( ...

  5. joinfetch之意义

    既然被join的对象早晚都要用到,为什么要先从A表取这边的独享,再根据关联关系取B表中的对象,分两次或者多次进行,增加数据库的负载呢? 为什么不把A表和B表join成一张表,从这个组合表中把要取的对象 ...

  6. httplib、urllib、urllib2的区别

     Python3.4互联网通讯协议支持 1,webbrowser方便的浏览器容器 2,cgi公共网关接口支持 3,cgitb管理cgi脚本 4,wsgiref  WSGI实体和引用实现 5,urlli ...

  7. chrom,firefox,ie不能上网,百度浏览器却可以。。。

    chrome和ie提示DNS查找失败,但是百度浏览器没任何问题,这是什么情况... 尝试很多方法后无用,命令行执行很多命令,无用, 试一下阿里的 DNS: 首选:223.5.5.5备用:223.6.6 ...

  8. React Native 弹性布局FlexBox

    React Native采用一中全新的布局方式:FlexBox(弹性布局).可以很方便的实现各种复杂布局,是全新的针对web和移动开发布局的一种实现方式. 何为FlexBox? 完整名称为:the f ...

  9. "由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的解决方案

    先使用如下命令登录到服务器: mstsc /v:{服务器IP} /admin 然后再使用下列方法之一即可. 方法一: 1.单击“开始→运行”,输入“gpedit.msc”打开组策略编辑器窗口,依次定位 ...

  10. 手机端APP原型相关

    http://www.isux.us/demoo/index.php(很慢) https://www.mockplus.cn/