split用法
来源:互联网 发布:手机qq悄悄话破解软件 编辑:程序博客网 时间:2024/05/18 02:48
Split 函数
返回基于 0 的一维数组,其中包含指定数目的子字符串。
Split(expression[, delimiter[, count[, start]]])
expression 必选项。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。 delimiter 可选项。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。 count 可选项。被返回的子字符串数目,-1 指示返回所有子字符串。 Compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。 compare 参数可以有以下值:设置
常数 值 描述 vbBinaryCompare0执行二进制比较。vbTextCompare1执行文本比较。
下面的示例利用 Split 函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串。
Dim MyString, MyArray, MsgMyString = "VBScriptXisXfun!"MyArray = Split(MyString, "x", -1, 1)' MyArray(0) contains "VBScript".' MyArray(1) contains "is".' MyArray(2) contains "fun!".Msg = MyArray(0) & " " & MyArray(1)Msg = Msg & " " & MyArray(2)MsgBox Msg
---------------------------------------------------------------------------------------------------------------------------------
实例:
/*
* 分割字符串,原理:检测字符串中的分割字符串,然后取子串
* @param original 需要分割的字符串
* @paran regex 分割字符串
* @return 分割后生成的字符串数组
*/
private String[] split(String original,String regex)
{
//取子串的起始位置
int startIndex = 0;
//将结果数据先放入Vector中 注意应当引入import java.util.Vector;
Vector v = new Vector();
//返回的结果字符串数组
//String[] str = null;
str = null;
//存储取子串时起始位置
int index = 0;
//获得匹配子串的位置
startIndex = original.indexOf(regex);
//如果起始字符串的位置小于字符串的长度,则证明没有取到字符串末尾。
//-1代表取到了末尾
while(startIndex < original.length() && startIndex != -1)//判断的条件,循环查找依据
{
String temp = original.substring(index,startIndex);
// System.out.println(temp);
//System.out.println(" " + startIndex);
//取子串
v.addElement(temp);
//设置取子串的起始位置
index = startIndex + regex.length();
//获得匹配子串的位置
startIndex = original.indexOf(regex,startIndex + regex.length());
}
System.out.println(index);
//取结束的子串
v.addElement(original.substring(index + 1 - regex.length()));
//System.out.println("last part:"+original.substring(index + 1 - regex.length()));
//将Vector对象转换成数组
str = new String[v.size()];
for(int i=0;i<v.size();i++)
str[i] =(String)v.elementAt(i);
//返回生成的数组
return str;
}
我先介绍一下Split函数的用法:
返回值数组 = Split("字符串","分割符")
假设变量strURL保存着URL值,如strURL = "ftp://username:password@server",这是我们在IE中登录到FTP上时的URL形式,如果我们想把其中的username和password取出来的话,该怎么办呢?当然解决的方法有许多,在这里我们只介绍用Split来解决的方法。首先,我们找出分割符。我们发现在这个字符串中,username和password之间有个冒号把它们隔开了,所以我们就把这个冒号作为Split函数的"分割符"来分割整个字符串,最后达到取username和password的目的。代码如下:
strURL = "ftp://username:password@server"
aryReturn = Split(strURL,":")
这样我们就把字符串用冒号分割开了,分割后的结果保存在aryReturn中(aryReturn是一个数组)。
下面我们就来看看这个最终的结果吧,因为Split函数最终返回的是一个数组,所以我们主要就是显示数组中的元素了,就要涉及到一些跟数组有关的函数:IsArray()判断是否数组的函数,LBound()取数组的下标,UBound()取数组的上标。
通过上面的代码,我们看到字符串被分割成三个部分,即:"ftp"、"//username"、"password@server"。我们要取username和password需要进一步的处理,我就不多说了,直接给出代码。
取username的代码:
strUsername = Right(aryReturn(1),Len(aryReturn(1))-2)
取password的代码:
分割符可以是一个字符,也可以是一个字符串。如:
aryReturn = Split("ftp://username:password@server,"//")
注意:
1.一般来说,ASP中可以不声明变量,使用Split函数时,如果要声明返回值的变量的话,只能用Dim,而不能用Redim。虽然说其返回是一个数组,应该是用Redim也可以,但在实际使用过程中是不行。不知是怎么回事?
2. 如果用Split函数来分割一个字符串中并不存在的分割符时,将返回整个字符串,其结果是只有一个元素的数组。
后话,对于要取一字符串中的某些字符或部分,只要抓住规律,再加上用split就可以很好做成各种效果。
'取password我们又用到Split函数了,不过这回的分割符是"@"
aryTemp = Split(aryReturn(2),"@")
strPassword = aryTemp(0)
'我们可以顺便取出server
strServer = aryTemp(1)
Response.Write("返回值是否为数组:" & IsArray(aryReturn) & "<br>")
For i = LBound(aryReturn) To UBound(aryReturn)
Response.Write("返回值数组中的元素[" & i & "]:" & Right(aryReturn(i),Len(aryReturn(i))-2) & "<br>")
Next
- split 用法
- split用法
- split用法
- split()用法
- split用法
- Split用法
- SPLIT用法
- split的用法-split(".")无效
- String.split()用法
- String.split的用法
- JAVA split 用法
- C#中split用法
- Split函数的用法
- split的用法
- js的split用法
- Java split用法
- String.split()的用法
- String split 用法
- substring
- WinCE中触摸屏驱动开发详解
- 俄罗斯方块(BT版)
- 头疼的日子终于过去了
- Libpcap库主要函数
- split用法
- AIX查找占用端口的程序
- 引擎架构~比较长1
- dll 文件书写模板--参考之用
- 存储管理动态分区分配及回收算法
- sping2.0手记
- 引擎架构~比较长2
- 会话
- 多级反馈队列调度算法 C语言模拟实现