以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  字符串变换求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=43909)

--  作者:yankunhao
--  发布时间:2013/12/18 17:09:00
--  字符串变换求助

如果有这样的的字符串:65/10,65/20,85/30,85/40,85/50,85/60,85/70

如何变换成这样的:65/10.20,85/30.40.50.60.70

 


--  作者:Bin
--  发布时间:2013/12/18 17:18:00
--  
Dim s1 As String() = "65/10,65/20,85/30,85/40,85/50,85/60,85/70".Split(",")
Dim ss As new List(of String)
For Each s As String In s1
    If ss.count=0 Then
        ss.Add(s)
    Else
        Dim str=ss(ss.count-1)
        Dim sss As String() =s.Split("/")
        If sss(0)=str.split("/")(0) Then
            ss(ss.count-1)=str & "." & sss(1)
        Else
            ss.Add(s)
        End If
    End If
Next
Dim result As String
For Each s As String In ss
    result=result & "," & s
Next
MessageBox.show(result.trim(","))

--  作者:yankunhao
--  发布时间:2013/12/18 17:35:00
--  
不对哦
--  作者:Bin
--  发布时间:2013/12/18 17:36:00
--  
.
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20131218173600.png
图片点击可在新窗口打开查看

--  作者:yankunhao
--  发布时间:2013/12/19 9:08:00
--  

不好意思,是我搞错了,如果对单一行的字符串是对的,我现在按这个方法想将表中的一列“型号规格”字符批量进行变换,才发现没那么简单。比如列中的数据是这样的:

铜配件-胆壳
85/30
85/30
85/30,85/40,85/50,85/60,85/70
E20/10*45,E20/10*50,E20/10*60,E20/10*70,E30/30*100,E30/55*55,铜配件-有牙匙

 

现在要对这一列批量进行变换,变成这样的

 

铜配件-胆壳
85/30
85/30
85/30.40.50.60,85/70

E20/10*45.10*50.10*60.10*70,E30/30*100.55*55,铜配件-有牙匙

 

请问应该如何做才对呢?


--  作者:yankunhao
--  发布时间:2013/12/19 9:11:00
--  

我现在是这样的,但不对。

 

For Each dr As DataRow In DataTables("销售订单查询").DataRows
Dim s1() As String = dr("型号规格").Split(",")
Dim ss As new List(of String)
For Each s2 As String In s1
    If ss.count=0 Then
        ss.Add(s2)
    Else
        Dim str=ss(ss.count-1)
        Dim sss As String() =s2.Split("/")
        If sss(0)=str.split("/")(0) Then
            ss(ss.count-1)=str & "." & sss(1)
        Else
            ss.Add(s2)
        End If
    End If
Next
Dim result As String
For Each s3 As String In ss
    result=result & "," & s3
Next
dr("型号规格") = result.trim(",")

Next


--  作者:yankunhao
--  发布时间:2013/12/19 9:20:00
--  
请问是不是要清空数组呢?但我找不到清空数组的方法。
--  作者:Bin
--  发布时间:2013/12/19 9:23:00
--  
呵呵,你循环的时候每次生成新的变量就已经是清空的了. 你等着我有时间帮你写一下吧.
--  作者:yankunhao
--  发布时间:2013/12/19 14:00:00
--  
请问有那位知道原因吗?
--  作者:yankunhao
--  发布时间:2013/12/19 16:00:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:字符串转换.rar

 

现在将这个文件上传,请求大家帮忙看看,为什么在原列做转换不行,而在其他列做转换就行,真是想不明白!

 

在这个文件的表中,第一列为想转换的字符,窗口下有个转换按钮,如果用这个按钮直接在当前列转换是不行的,转换后会多出一些不想要的内容,需每二列会也用类似的语句进行转换,却可以正常转换。每三列的内容为第一列的原始内容,以方便复制测试用。

[此贴子已经被作者于2013-12-19 16:06:16编辑过]