一个关于字符串的处理问题

时间:2021-11-27 04:18:36
由于工程的需要,在工程项目中获得了一个字符串,但是还需要对字符串进行一些改动

获得字符串如:"4375451,123567,4269854,123654,4236524,236541"
我想将1,3,5等奇数字符串前面的4去掉,效果为:"375451,123567,269854,123654,236524,236541",然后把以上的字符串进行分组,效果为“123567,375451”,"123654,269854","236541,236524"


请问如何实现这个操作,谢谢了~~

9 个解决方案

#1


还有,如何按“,”号进行分割,将字符串存在一个数组里
如myarray(1)=4375451
myarray(2)=123567~~~

#2


Option Base 1
dim strA as string 
dim myarray() as string 
strA="4375451,123567,4269854,123654,4236524,236541"
myarray=split(strA,",")

#3


首先用一个 len()函数得到字符串的长度,假设字符串变量为 AA 然后使用 right(aa,len(aa)-1)得到右边的字符串。
使用split函数进行分组,语法为:


--------------------------------------------------------------------------------

描述
返回基于 0 的一维数组,其中包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, start]]])
Split 函数的语法有以下参数:

参数 描述 
expression 必选。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。 
delimiter 可选。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。 
count 可选。被返回的子字符串数目,-1 指示返回所有子字符串。 
compare 可选。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。 


设置
compare 参数可以有以下值:
常数 值 描述 
vbBinaryCompare 0 执行二进制比较。 
vbTextCompare 1 执行文本比较。 


说明
下面的示例利用 Split 函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串。 
Dim MyString, MyArray
MyString = Split("VBScriptXisXfun!", "x", -1, 1)
' MyString(0) 包含"VBScript"。
' MyString(1) 包含"is"。
' MyString(2) 包含 "fun!"。

你只要把分隔符定义为“,”就可以了。

至于你说的分组,不知道规律是什么。

#4


同意用split分割成若干字符串

而后 使用循环执行(instr(str,"41") 手段 可以替换掉41成1,同理替换掉43 45),对各个字串进行操作



#5


http://community.csdn.net/Expert/topic/3832/3832071.xml?temp=.2445032
发出的贴子没人回,顶贴给分,快!!

#6


请问一下如何在社区中提问呢,我长不到提问按钮啊,帮帮忙!

#7


算法描述:
    (1)  将字符串分割存入数组中
         dim strA as string 
         dim myarray() as string 
         strA="4375451,123567,4269854,123654,4236524,236541"
         myarray=split(strA,",")

    (2)  然后去掉strA(0),strA(2),strA(3)中的第一个字符
         dim i as integer 
         for i = 0 to 5 step 2
             strA(i)=Right(strA(i),len(strA(i)-1))
         next

    (3)  再将各个数组元素重新组合
         dim j , k as integer
         dim aa(3) as string 
         for j = 0 to 5 step 2
             k=j/2
             aa(k)=strA(j+1) & "," & strA(j)
         next
    (4)  最后aa(0),aa(1),aa(2)即为所求
         aa(0)="123567,375451"
         aa(1)="123654,269854"
         aa(2)="236541,236524"
    

#8



    不好意思,马虎错误!

    上边的(2)(3)中的strA(x)应该全部改为myarray(x)

   (2)   然后去掉myarray(0),myarray(2),myarray(4)中的第一个字符
         dim i as integer 
         for i = 0 to 5 step 2
             myarray(i)=Right(myarray(i),len(myarray(i))-1)
         next

   (3)   再将各个数组元素重新组合
         dim j , k as integer
         dim aa(3) as string 
         for j = 0 to 5 step 2
             k=j/2
             aa(k)=myarray(j+1) & "," & myarray(j)
         next

#9


请问如何确定myarray=split(strA,","),这个数组中值的个数,因为以后要用这个值来循环~~

#1


还有,如何按“,”号进行分割,将字符串存在一个数组里
如myarray(1)=4375451
myarray(2)=123567~~~

#2


Option Base 1
dim strA as string 
dim myarray() as string 
strA="4375451,123567,4269854,123654,4236524,236541"
myarray=split(strA,",")

#3


首先用一个 len()函数得到字符串的长度,假设字符串变量为 AA 然后使用 right(aa,len(aa)-1)得到右边的字符串。
使用split函数进行分组,语法为:


--------------------------------------------------------------------------------

描述
返回基于 0 的一维数组,其中包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, start]]])
Split 函数的语法有以下参数:

参数 描述 
expression 必选。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。 
delimiter 可选。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。 
count 可选。被返回的子字符串数目,-1 指示返回所有子字符串。 
compare 可选。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。 


设置
compare 参数可以有以下值:
常数 值 描述 
vbBinaryCompare 0 执行二进制比较。 
vbTextCompare 1 执行文本比较。 


说明
下面的示例利用 Split 函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串。 
Dim MyString, MyArray
MyString = Split("VBScriptXisXfun!", "x", -1, 1)
' MyString(0) 包含"VBScript"。
' MyString(1) 包含"is"。
' MyString(2) 包含 "fun!"。

你只要把分隔符定义为“,”就可以了。

至于你说的分组,不知道规律是什么。

#4


同意用split分割成若干字符串

而后 使用循环执行(instr(str,"41") 手段 可以替换掉41成1,同理替换掉43 45),对各个字串进行操作



#5


http://community.csdn.net/Expert/topic/3832/3832071.xml?temp=.2445032
发出的贴子没人回,顶贴给分,快!!

#6


请问一下如何在社区中提问呢,我长不到提问按钮啊,帮帮忙!

#7


算法描述:
    (1)  将字符串分割存入数组中
         dim strA as string 
         dim myarray() as string 
         strA="4375451,123567,4269854,123654,4236524,236541"
         myarray=split(strA,",")

    (2)  然后去掉strA(0),strA(2),strA(3)中的第一个字符
         dim i as integer 
         for i = 0 to 5 step 2
             strA(i)=Right(strA(i),len(strA(i)-1))
         next

    (3)  再将各个数组元素重新组合
         dim j , k as integer
         dim aa(3) as string 
         for j = 0 to 5 step 2
             k=j/2
             aa(k)=strA(j+1) & "," & strA(j)
         next
    (4)  最后aa(0),aa(1),aa(2)即为所求
         aa(0)="123567,375451"
         aa(1)="123654,269854"
         aa(2)="236541,236524"
    

#8



    不好意思,马虎错误!

    上边的(2)(3)中的strA(x)应该全部改为myarray(x)

   (2)   然后去掉myarray(0),myarray(2),myarray(4)中的第一个字符
         dim i as integer 
         for i = 0 to 5 step 2
             myarray(i)=Right(myarray(i),len(myarray(i))-1)
         next

   (3)   再将各个数组元素重新组合
         dim j , k as integer
         dim aa(3) as string 
         for j = 0 to 5 step 2
             k=j/2
             aa(k)=myarray(j+1) & "," & myarray(j)
         next

#9


请问如何确定myarray=split(strA,","),这个数组中值的个数,因为以后要用这个值来循环~~