一、字符串拼接的工具类

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. matlab调用opencv函数的配置

    环境: VS2010 活动解决方案平台x64 WIN 8.1 Opencv 2.4.3 Matlab 2012a 1.  首先保证vs2010能正确调用opencv函数, 2.  Matlab中选择编 ...

  2. MapReduce基础

    这篇文章翻译自Yahoo的Hadoop教程,很久之前就看过了,感觉还不错.最近想总结一下以前学的东西,看到现在关于Hadoop的中文资料还比较少,就有了把它翻译出来的想法,希望能帮助到初学者.这只是Y ...

  3. 苹果 iOS 8 新固件新功能特性总结汇总 (苹果 iPhone/iPad 最新移动操作系统)

    苹果在 WWDC 2014 大会上正式发布了其最新的 OS X Yosemite 桌面系统以及 iOS 8 移动操作系统,虽然 iOS 8 依然延续了 iOS7 的扁平化设计风格,但在功能上却还是给我 ...

  4. 03-树2 Tree Traversals Again

    这题是第二次做了,两次都不是独立完成,不过我发现我第一次参考的程序,也是参考老师(陈越)的范例做出来的.我对老师给的做了小幅修改,因为我不想有全局变量的的存在,所以我多传了三个参数进去.正序遍历每次都 ...

  5. CAD系统变量(参数)大全

    所谓系统变量就是一些参数,这些参数有些是可以在“选项”或其他对话框中进行设置的,有些这必须通过在命令行输入变量名进行设置,当然对于高手来说,还可以通过二次开发程序来进行控制. CAD有很多的变量,例如 ...

  6. 一些需要注意的C知识点

    1.数组在作为参数传递到函数时,会退化为一个指针.也就是说,一旦进入函数内部,数组已经变为了一个指针.其实是在参数传递的时候进行了浅拷贝,编译器会声明一个指针指向该数组,在函数内部所有的操作都是对该临 ...

  7. 使用HackRF+GNU Radio 破解吉普车钥匙信号

    引文 我最近对软件定义的无线电技术(SDR)产生了浓厚的兴趣,而我对其中一款流行的SDR平台(HackRF)也产生了兴趣,而其频率接收的范围也在1MHz ~6GHz之间(范围较广).而这里也需要提及一 ...

  8. Ettus Research USRP B200/B210 simple case

  9. 求一个数组中最小的K个数

    方法1:先对数组进行排序,然后遍历前K个数,此时时间复杂度为O(nlgn); 方法2:维护一个容量为K的最大堆(<算法导论>第6章),然后从第K+1个元素开始遍历,和堆中的最大元素比较,如 ...

  10. du -sh 目录名称 查看目录大小

    du -sh 目录名称 查看目录大小 df -h 查看磁盘使用情况