Join函数 及Split函数精解示例

‘*************************************************************************

‘**模 块 名:Join函数 及Split函数精解示例

‘**说    明:蓝凤凰设计商城 浴火凤凰-郭卫 | 蓝凤凰-魔灵 | 郭卫-icecept

‘**创 建 人:浴火凤凰-郭卫

‘**日    期:2015年10月11日  17:49:52

‘**修 改 人:浴火凤凰-郭卫

‘**日    期:

‘**描    述:QQ:493405998 | 微信\旺旺:icecept

‘**版    本:V1.0.0 | http://blog.sina.com.cn/icecept

‘*************************************************************************

‘你是否遇到过需要把数组的内容保存到注册表、文件或者控件的Tag属性中?在VB6以及.NET中,Join函数和Split函数为你提供了实现上述功能的简便方法?这两个函数还有把一维数组导入到字符串以及从字符串恢复数组的功能?

‘Join函数的参数为一个数组和分隔符(分隔符可选),它把数组的所有元素导入到字符串,元素间用分隔符分隔,并返回该字符串。

‘●Join函数用法:传回字符串 = Join(原始数组, 分隔字符串)

‘描述‘

‘返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。

‘语法

‘Join(list[, delimiter])

‘Join函数语法有如下几部分:

‘List 必需的?包含被连接子字符串的一维数组?

‘delimiter 可选的。在返回字符串中用于分隔子字符串的字符。如果忽略该项,则使用空格(" ")来分隔子字符串。如果delimiter是零长度字符串(""),则列表中的所有项目都连接在一起,中间没有分隔符。

‘---------------------------------------------------------------------------------------------------

‘●Split函数用法:传回数组 = Split(原始字串[, 要找的字串][, 拆成几个数组][,比较方式])

‘描述

‘返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

‘语法

‘Split(expression[, delimiter[, count[, compare]]])

‘Split函数语法有如下几部分:

‘expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。

‘delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。

‘count 可选的。要返回的子字符串数,-1表示返回所有的子字符串。

‘compare 可选的。数字值,判别子字符串时使用的比较方式(就是表明是否区分大小写):执行二进制比较(区分),执行文字比较(不区分)

‘设置值

‘compare参数的设置值如下:

‘     常数             值             描述

‘vbUseCompareOption    -1    用Option Compare语句中的设置值执行比较。

‘vbBinaryCompare        0    执行二进制比较。

‘vbTextCompare          1    执行文字比较。

‘vbDatabaseCompare      2    仅用于Microsoft Access。基于您的数据库的信息执行比较。

‘Join函数和Split函数在需要把数组内容转化为字符串并从字符串恢复数组的情况下显得非常有用。例如,把表格各个栏的宽度转化为字符串保存到注册表,并从注册表恢复栏宽。使用这两个函数会简化保存和处理数组内容。

Option Explicit

Private Sub command1_Click()

Dim MyStr As String

MyStr = "1234567123456712345"

MyStrs = Split(MyStr, "67")

For Each Strs In MyStrs

Debug.Print Strs

Next

End Sub

‘●输出结果:"12345"、"12345"、"12345"

‘=================================================================

‘这个VB程序是让求10个学生的考试成绩的平均分..

‘比如95 85 70 75 80 90 60 65 95 100

‘这10个人的分数的平均分...

Private Sub Command2_Click()

Dim A$(), i As Long, intB As String, s As Integer

If Dir("d:\平均分.dat") = vbNullString Then

Open "d:\平均分.dat" For Output As #1

Print #1, "95 85 70 75 80 90 60 65 95 100"

Close #1

End If

Open "d:\平均分.dat" For Input As #1

Input #1, intB

Close #1

A = Split(intB, Space$(1))

For i = 0 To UBound(A)

Debug.Print A(i); Space$(1);

s = s + A(i)

Next i

Debug.Print ",10个学生的平均成绩是 :" & s / 10

End Sub

Private Sub Command3_Click()

Dim AString As String

Dim r() As String                      ‘把变量按照“,”分割出来的数组

AString = "高级,中级,低级,先进"

r = Split(AString, ",")               ‘把字符串以“,”分割存入数组

Debug.Print "数组中第三个数据是:" & r(2)

‘以另一种方式输出

‘当小括号中写0时,返回数组中第一个元素,小括号中写1时返回数组中第二个元素。依此类推,用这种写法返回数据时,

‘必须用一个空格把字符串分开,其它字符仅当做一个数据。因为省略要的字符串时,默认为空格。例:

Dim AString As String

AString = "高级 中级 低级 先进"

Debug.Print Split(AString)(0)    ‘与Debug.Print Split(AString,space(1))(0)相同

Debug.Print Split(AString)(1)

Debug.Print Split(AString)(2)

Debug.Print Split(AString)(3)

Debug.Print "以下是错误的用法-------------------------------------"

AString = "高级,中级,低级,先进"

Debug.Print Split(AString)(0) ‘这里会产生错误,因为要找的字符串是“,”,而省略要找的字符串后

Debug.Print Split(AString)(1) ‘默认分界符是空格,而此程序段是“,”所以只返回 高级,中级,低级,先进  仅当作一个串

Debug.Print Split(AString)(2) ‘其它三个都产生下标越界错误

Debug.Print Split(AString)(3)

End Sub

‘================================================================

Private Sub Command4_Click()

Dim s As String, T() As String

s = "1A2A3A4A5A6A7"

‘count 用途示例,返回四个字符串

‘返回值:以A为分割符,最后一个把剩余的当成一个字符串返回

‘1

‘2

‘3

‘4A5A6A7

T() = Split(s, "A", 4)

Debug.Print Join(T, vbCrLf)

End Sub

Private Sub Command5_Click()

Dim s As String, T() As String

s = "1A2A3A4A5A6A7"

‘compare 用途示例,忽略大小写,默认为:vbBinaryCompare 大小写不同

Debug.Print "忽略大小写" & vbCrLf

T() = Split(s, "a", , vbTextCompare)

Debug.Print Join(T, vbCrLf)

‘返回值:

‘1

‘2

‘3

‘4

‘5

‘6

‘7

End Sub

Private Sub Command6_Click()

Dim s As String, T() As String

s = "1A2A3A4A5A6A7"

‘compare 用途示例,忽略大小写,默认为:vbBinaryCompare 大小写不同

Debug.Print "不忽略大小写" & vbCrLf

T() = Split(s, "a", , vbBinaryCompare)

Debug.Print Join(T, vbCrLf)

‘返回值:

‘1A2A3A4A5A6A7

End Sub

Private Sub Command7_Click()

Dim i As Integer            ‘循环变量

Dim s As String

Dim d As String

Dim iCount As Integer       ‘总个数

Dim arr() As String

s = 567904       ‘字符串1

d = 574          ‘字符串2

For i = 1 To Len(s)

arr = Split(s, Mid$(d, i, 1))

iCount = iCount + UBound(arr)

Next i

MsgBox "在 " & d & " 中有 " & iCount & " 个字符与 " & s & " 中的字符相同."

End Sub

Private Sub Command8_Click()

Dim strTest1() As Variant, strIns() As Variant       ‘这是两个需要合并的原数组,strIns 是需要插入strTest1数组的数组

‘T1-T4为中间变量

Dim T1 As String, T2 As String, T3 As String, T4 As String

‘分段字符串时的焦点位置

Dim Position As Integer, Sss As String, strSource() As String

‘用Array给数组赋初值时,数组必须是 Variant类型

strTest1 = Array("A", "B", "0", "C", "1", "2", "3", "4", "5", "D")    ‘原数组一数据

strIns = Array("V", "XM", "U", "1")    ‘原数组二数据

T1 = Join(strTest1(), ",")      ‘把原数组一用“,”转换成字符串存入T1变量

T2 = Join(strIns(), ",")        ‘同样把原数组二用“,”转换成字符串存入T2变量

Position = InStr(T1, "2")       ‘找到数组二要插入的位置

T3 = Mid$(T1, 1, Position + 1)  ‘取字符串T1从头开始到插入位置加一处,存入T3字符串变量

T4 = Mid$(T1, Position + 1)     ‘取字符串T1从插入位置加一处,一直到未尾的所有字符存入T4变量

Sss = T3 & T2 & T4              ‘把三个字符串变量按要求合并存入sss变量

‘统计原数组一的维数,等号两端的类型必须一致

strSource = Split(Sss, ",")

Debug.Print "合并前的两个数组:" & vbCrLf

Debug.Print "strTest1:" & Join(strTest1, Space$(1)) & vbCrLf

Debug.Print "strIns:" & Join(strIns, Space$(1)) & vbCrLf

Debug.Print "两个数组合并后的统一数组strSource:" & vbCrLf

Debug.Print Join(strSource, Space$(2))

‘合并前的两个数组:

‘strTest1:A B 0 C 1 2 3 4 5 D

‘strIns:V XM U 1

‘两个数组合并后的统一数组strSource:

‘A  B  0  C  1  2  V  XM  U  1  3  4  5  D

End Sub

Private Sub Command9_Click()

Dim aaa(3) As String, bbb(3) As String

Dim Sss As String

aaa(0) = "111"

aaa(1) = "222"

aaa(2) = "333"

aaa(3) = "444"

bbb(0) = "vvv"

bbb(1) = "ccc"

bbb(2) = "xxx"

bbb(3) = "zzz"

Sss = Join(aaa) & Space$(1) & Join(bbb)

MsgBox Sss

End Sub

时间: 2024-10-15 09:13:05

Join函数 及Split函数精解示例的相关文章

Replace 删除、替换函数精解示例

'************************************************************************* '**模 块 名:Replace函数精解示例 '**说    明:蓝凤凰设计商城 浴火凤凰-郭卫 | 蓝凤凰-魔灵 | 郭卫-icecept '**创 建 人:浴火凤凰-郭卫 '**日    期:2015年10月11日  12:00:13 '**修 改 人:浴火凤凰-郭卫 '**日    期: '**描    述:QQ:493405998 | 微信

python 中join()函数strip() 函数和 split() 函数的详解及实例

1.join()函数 Python中有join()和os.path.join()两个函数,具体作用如下: join():                连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符)连接生成一个新的字符串 语法:  'sep'.join(seq) 参数说明sep:分隔符.可以为空seq:要连接的元素序列.字符串.元组.字典上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串 返回值:返回一个以分隔符sep连接各个元素后生成的字符串 os.p

js中的join(),reverse()与 split()函数用法解析

<script> /* * 1:arrayObject.reverse() * 注意: 该方法会改变原来的数组,而不会创建新的数组. * 2:arrayObject.join() * 注意:join() 方法用于把数组中的所有元素放入一个字符串. * 元素是通过指定的分隔符进行分隔的. * 指定分隔符方法join("#");其中#可以是任意 * 3:stringObject.split(a,b)这是它的语法 * 方法:用于把一个字符串分割成字符串数组. * a是必须的决定个

strip()函数和 split()函数

一:python strip()函数介绍 函数原型:strip可以删除字符串的某些字符 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符 s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符 注意: 1. 当rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ') 例如: 复

python:strip()函数和split()函数

strip()默认删除空白字符(\n,\r,\t,' ') split()函数有split()和os.path.split()两种形式,默认分隔符为空格,但是不能为空("")

python strip()函数和Split函数的用法总结

strip函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符 s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符 注意: 1. 当rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ') 例如: 2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删

DOS 命令For精解示例

最基本形态: 在cmd 窗口中:for %I in (command1) do command2 在批处理文件中:for %%I in (command1) do command2 在批处理中,FOR命令的常见参数有/D./R./F./L.  一./D参数——查询目录格式:FOR /D %%I       IN (Command1)   DO Command2用法:总结:/D用于搜索目录(或文件夹).注意:只搜索文件夹,不搜索文件.只搜索指定目录,不搜索子目录. 例一:搜索C盘下所有目录: @e

oracle pl/sql split函数

在软件开发过程中程序员经常会遇到字符串的拼接和拆分工作. 以java开发为例: 前台传入字符串拼接形式的一个JSON数据,如:"1001,1002,1003",这可能代表了一组序号. 程序员需要将序号转名称后按照相同的格式输出,如:“张三.李四.王五”. Java程序员通用的做法是在service层将接收的"1001,1002,1003"拆分(使用java split函数),然后封装List,将List传递给DAO, 再传递给ORM持久层的xml调用sql执行,sq

巧用C# Split()函数获取SQL语句中操作字段

这是前天工作时要求的,将SQL语句的操作字段获取出来挂在树节点上,感觉这个函数以后还有可能会用到,特此总结一下,函数中没有实现Select *的操作,只要添加判断条件即可. 工具函数:Split()函数:通过字符分割字符串为一个string类型的一维数组. String.Split 方法有6个重载函数: 1) public string[] Split(params char[] separator)        返回的字符串数组包含此实例中的子字符串 2) public string[] S