Foxtable(狐表)用户栏目专家坐堂 → 字符串变换求助


  共有4854人关注过本帖树形打印复制链接

主题:字符串变换求助

帅哥哟,离线,有人找我吗?
yankunhao
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7258 威望:0 精华:0 注册:2008/9/1 22:34:00
字符串变换求助  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7258 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/18 17:35:00 [只看该作者]

不对哦

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/18 17:36:00 [只看该作者]

.
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20131218173600.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7258 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7258 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7258 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/19 9:20:00 [只看该作者]

请问是不是要清空数组呢?但我找不到清空数组的方法。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/19 9:23:00 [只看该作者]

呵呵,你循环的时候每次生成新的变量就已经是清空的了. 你等着我有时间帮你写一下吧.

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7258 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/19 14:00:00 [只看该作者]

请问有那位知道原因吗?

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7258 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/12/19 16:00:00 [只看该作者]

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

 

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

 

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

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

 回到顶部
总数 11 1 2 下一页