两组字符串数据比较合并相同数据

作者:cnbruce 来源:cnbruce blog 时间:2008-07-31 17:27:00 

两组字符串数据,需要比较其中相同的数据,并将其值相加并组成一个新的字符串数据

a1="sp2=20;sp1=34;"
a2="sp3=2;sp2=3;sp1=4;"

两组字符串数据,将字符串中相同的数据值相加后得到新的一组数据
即“sp3=2;sp2=23;sp1=38”

(p.s 一个简单的应用:商品二原有数量20件,商品一原有数量34件,新进货或者新出售了商品二3件,商品一4件等类型模拟情况下计算出进货量,销售量和库存量,小型的进销存系统可采用这样的方法)

那么如何实现两组字符串数据比较合并相同数据?

第一,将两组字符串数据进行连接组合

a3=a1&a2
那么a3="sp2=20;sp1=34;sp3=2;sp2=3;sp1=4;"

第二,将a3中相同的数据进行值的相加

这里主要解决的是如何寻找到相同的数据

首先因为现在a3就是由 sp2、sp1、sp3、sp2和sp1组成,需要把相同的sp2和sp1单独找出来再进行值得相加。

通过split函数分割“;”为分隔符获得每块数据和值。

即 s_array = split(a3,";")通过for i = 0 to ubound(s_array)循环我们可以获得单独的各项数据及值

其中每项的格式是类似“sp2=20”,要将sp2提取出来才能和同组中的数据进行比较,所以还需要独立函数进行提取

Function getSPName(sp)
    getSPName = split(sp,"=")(0)
End Function

Function getSPNum(sp)
    getSPNum = split(sp,"=")(1)
end function

分别获得“=”前的数据名称和“=”后的数据值。

其次每块数据都分解下来了,就是如何寻找到相同的数据名称。

我们假设这样的流程,首先将a3数组中的第一元素提取,通过和除第一元素之前以为的数据进行比较,如果有相同则进行相加。

s_array = split(a3,";")
for i = 0 to ubound(s_array)
    for j=i+1 to ubound(s_array)
        if getSPName(s_array(i)) = getSPName(s_array(j)) then
        Nums = Nums + Cint(getSPNum(s_array(j)))
        end if
    next
next

我们获得了最终的值可以随时将值赋到新的动态数组中,组合成最终的“组合数据”数组

redim Preserve result(p)
result(p) = getSPName(s_array(i)) & "=" & Nums

s_array = split(a3,";")
for i = 0 to ubound(s_array)
    for j=i+1 to ubound(s_array)
        if getSPName(s_array(i)) = getSPName(s_array(j)) then
        Nums = Nums + Cint(getSPNum(s_array(j)))
        end if
    next

    redim Preserve result(p)
    result(p) = getSPName(s_array(i)) & "=" & Nums
    p=p+1
next

这个里面势必会遇到这样的一个情况:当a3数组中的其后的某一元素总会与之前比较的相同的元素进行了运算,所以该元素就不能计入 for i = 0 to ubound(s_array)内的result(p) = getSPName(s_array(i)) & "=" & Nums动态数组中去。

标签:字符串,数据,字符
0
投稿

猜你喜欢

  • 基于python爬取有道翻译过程图解

    2021-11-03 23:57:27
  • 详解python文件的操作和异常的处理

    2021-06-07 04:05:37
  • Mootools常用方法扩展(一)

    2009-01-09 12:45:00
  • Burpsuite模块之Burpsuite Intruder模块详解

    2023-11-24 05:31:24
  • Django项目中model的数据处理以及页面交互方法

    2022-12-26 20:12:25
  • pandas数据处理清洗实现中文地址拆分案例

    2023-09-22 11:16:55
  • python开发入门——set的使用

    2023-09-21 09:39:56
  • 深入SQL Server中char、varchar、text和nchar、nvarchar、ntext的区别详解

    2024-01-26 11:26:57
  • Python爬取世界杯热搜榜并制作脚本自动发送信息到邮箱的过程

    2021-01-21 20:35:53
  • Python 生成多行重复数据的方法实现

    2022-07-26 18:56:07
  • python监控网卡流量并使用graphite绘图的示例

    2022-06-24 22:35:54
  • Python小程序之在图片上加入数字的代码

    2023-11-14 08:26:48
  • SQL 2008的变更数据捕获——跟踪可变部分

    2009-03-20 11:47:00
  • 使用python实现正则匹配检索远端FTP目录下的文件

    2022-03-27 07:29:15
  • 如何使用PyCharm引入需要使用的包的方法

    2021-12-22 07:34:56
  • Pytest框架之fixture详解(三)

    2023-06-20 12:05:27
  • Django获取该数据的上一条和下一条方法

    2022-12-07 13:36:35
  • Python json解析库jsonpath原理及使用示例

    2022-05-18 09:43:00
  • Vue3+Vite实现动态路由的详细实例代码

    2023-07-02 16:58:37
  • 详解OpenCV中简单的鼠标事件处理

    2023-01-04 12:16:01
  • asp之家 网络编程 m.aspxhome.com