以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求教,按条件取字符数组符合条件的值的简更方法?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=6769)

--  作者:baoxyang
--  发布时间:2010/4/23 10:38:00
--  求教,按条件取字符数组符合条件的值的简更方法?
例如
dim s as string = "1,a,b,c|2,e,f,g|3,t,y,u"
求每一个以“|”分开的字符串,查找以“,”分开的字符串第一个字符等于2(是个变量)的第二个字符是e。
把得到的值(e)替换成(Z)
使得s = "1,a,b,c|2,Z,f,g|3,t,y,u"
如何写代码?谢各位指教!

[此贴子已经被作者于2010-4-23 10:46:04编辑过]

--  作者:mr725
--  发布时间:2010/4/23 11:09:00
--  
for i as integer = 0 to s.split("|").length-1
    if s.split("|")(i).substring(0,1) = 2 
        s.split("|")(i).replace(s.split("|")(i).substring(2,1),"Z")
    end if
next
--  作者:baoxyang
--  发布时间:2010/4/23 11:25:00
--  
谢谢!!
--  作者:程兴刚
--  发布时间:2010/4/23 12:34:00
--  
dim s as string = "1,a,b,c|2,e,f,g|3,t,y,u".replace("|2,e","|2,z")

--  作者:mr725
--  发布时间:2010/4/23 12:53:00
--  

楼主的 2 是个变量,应该这样:

dim s as string = "1,a,b,c|2,e,f,g|3,t,y,u|2,e,f,g|3,t,y,u"
s= s.replace("|*,e","|*,z")       \'这个通配符怎么用呢?
output.show(s)        \'结果:1,a,b,c|2,e,f,g|3,t,y,u|2,e,f,g|3,t,y,u  哈哈 不对呀 。

不会用通配符了,还是这样清爽啊:
dim s1 as string
for i as integer = 0 to s.split("|").length-1
    if s.split("|")(i).substring(0,1) = 2
       s1 = s.split("|")(i).replace(s.split("|")(i).substring(2,1),"Z")
       s = s.replace(s.split("|")(i),s1)
    end if
next
output.show(s)       \'结果:1,a,b,c|2,Z,f,g|3,t,y,u|2,Z,f,g|3,t,y,u 

[此贴子已经被作者于2010-4-23 13:49:28编辑过]

--  作者:程兴刚
--  发布时间:2010/4/23 13:25:00
--  
dim s as string = "1,a,b,c|2,e,f,g|3,t,y,u".replace("|" & 2 & "," & e,"|" & 2 & "," & z)

2、e、z都可以是变量

--  作者:mr725
--  发布时间:2010/4/23 14:05:00
--  
这样不是更简单:
dim s as string = "1,a,b,c|2,e,f,g|3,t,y,u|2,e,f,g|3,t,y,u"
s = s.replace("e","Z")    \'如果每个|....|之间只有一个e
Output.Show(s)           \'结果: 1,a,b,c|2,Z,f,g|3,t,y,u|2,Z,f,g|3,t,y,u 

--  作者:程兴刚
--  发布时间:2010/4/23 15:15:00
--  
以下是引用mr725在2010-4-23 14:05:00的发言:
这样不是更简单:
dim s as string = "1,a,b,c|2,e,f,g|3,t,y,u|2,e,f,g|3,t,y,u"
s = s.replace("e","Z")    \'如果每个|....|之间只有一个e
Output.Show(s)           \'结果: 1,a,b,c|2,Z,f,g|3,t,y,u|2,Z,f,g|3,t,y,u 

让楼主试试,看看能否满足要求?


--  作者:baoxyang
--  发布时间:2010/4/23 16:05:00
--  
多谢两位版主提供的帮助!
--  作者:mr725
--  发布时间:2010/4/23 16:20:00
--  
以下是引用baoxyang在2010-4-23 16:05:00的发言:
多谢两位版主提供的帮助!

哈哈,俺不是版主,甚至不如你老弟,跟着玩fox罢了,老程才是,虽然他6楼代码有笔误,但他还是更严谨些····