扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
VB.NET编程Mid函数一般用于返回原字符串中子串,比如说:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网络空间、营销软件、网站建设、潍城网站维护、网站推广。
Dim MyString, FirstWord, LastWord, MidWords
MyString = "Mid Function Demo" 建立一个字符串。
FirstWord = Mid(MyString, 1, 3) ' 返回 "Mid"。
LastWord = Mid(MyString, 14, 4) ' 返回 "Demo"。
MidMidWords = Mid(MyString, 5) ' 返回 "Funcion
具体函数说明如下:返回 Variant (String),其中包含字符串中指定数量的字符。
mid函数的语法:
Mid(string, start[, length])
mid函数的参数:
string 必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null;
start 必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数,VB.NET Mid函数返回零长度字符串 ("");
length 可选参数;为 Variant (Long)。要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。
VB.Net自带函数:
十进制转八进制:Oct(num)
十六进制转八进制:oct("H" num)
十进制转十六进制:hex(num)
八进制转十六进制:hex("O" num)
十六进制转换为十进制:CLng("H" num)
(一)类型转换类函数
1. CType(X)
[格式]:
P=CBool(X)
' 将X转换为"布尔"(Boolean)类型
P=CByte(X)
' 将X转换为"字节"(Byte)类型
P=CCur(X)
' 将X转换为"金额"(Currency)类型
P=CDate(X)
' 将X转换为"日期"(Date)类型
P=CDbl(X)
' 将X转换为"双精度"(Double)类型
P=CInt(X)
' 将X转换为"整型"(Integer)类型
P=CLng(X)
' 将X转换为"长整型"(Long)类型
P=CSng(X)
' 将X转换为"单精度"(Single)类型
P=CStr(X)
' 将X转换为"字符串"(String)类型
P=Cvar(X)
' 将X转换为"变体型"(Variant)类型
P=CVErr(X)
' 将X转换为Error值
[ 范例 ]:
(1). CStr(13)+CStr(23)
' 数值转换成字符串后,用"+"号连接, 结果:1323
(2). CInt("12")+12
' 字符串转换成整型后与12相加, 结果:24
(3). P=CInt(True)
' 输出结果为-1
' 布尔值与数值的转换时要注意,布尔值只有True和False,其中True在内存中为-1,False存为0
(4). CBool(-0.001)
' 输出结果为True
' 将数值转换为布尔型时,等于0的数值将得到False,不等于0的数值得到True.
2. Int(X),Fix(X):取X的整数值
[格式]:
P=Int(X) ' 取=X的最大整数值
P=Fix(X) ' 取X的整数部分,直接去掉小数
[范例]:
(1) Int(-54.6)
' 结果为-55,取=-54.6的最大整数
(2) Fix(54.6)
' 结果为54,取整数并直接去掉小数
(二)常用数学函数
[格式]:
1. Abs(N) 取绝对值
例:Abs(-3.5) 结果:3.5
2. Cos(N) 余弦函数
例:Cos(0) 结果:1
3. Exp(N) e为底的指数函数
例:Exp(3) 结果:20.068
4. Log(N) 以e为底的自然对数
例:Log(10) 结果:2.3
5. Rnd[(N) 产生随机数
例:Rnd 结果:0--1之间的数
6. Sin(N) 正弦函数
例:Sin(0) 结果:0
7. Sgn(N) 符号函数
' 说明:取正负号。Y=Sgn(X) 既 X0 则Y=1;X=0 则Y=0;X0 则Y= -1
8. Sqr(N) 平方根
例:Sqr(9) 结果:3
9. Tan(N) 正切函数
例:Tan(0) 结果:0
10.Atn(N) 反切函数
例:Atn(0) 结果:0
[注意]:在三角函数中,以弧度表示。
(一)字符串类函数:
1. ASC(X),Chr(X):转换字符字符码
[格式]:
P=Asc(X) 返回字符串X的第一个字符的字符码
P=Chr(X) 返回字符码等于X的字符
[范例]:
(1)P=Chr(65)
'输出字符A,因为A的ASCII码等于65
(2)P=Asc("A")
'输出65
2. Len(X):计算字符串X的长度
[格式]:
P=Len(X)
[说明]:
空字符串长度为0,空格符也算一个字符,一个中文字虽然占用2 Bytes,但也算一个字符。
[范例]:
(1) 令X="" (空字符串)
Len(X) 输出结果为0
(2) 令X="abcd"
Len(X) 输出结果为4
(3) 令X="VB教程"
Len(X) 输出结果为4
3. Mid(X)函数:读取字符串X中间的字符
[格式]:
P=Mid(X,n)
由X的第n个字符读起,读取后面的所有字符。
P=Mid(X,n,m)
由X的第n个字符读起,读取后面的m个字符。
[范例]:
(1) X="abcdefg"
P=Mid(X,5)
结果为:P="efg"
(2) X="abcdefg"
P=Mid(X,2,4)
结果为P="bcde"
4. Replace: 将字符串中的某些特定字符串替换为其他字符串
[格式]:
P=Replace(X,S,R)
[说明]:将字符串X中的字符串S替换为字符串R,然后返回。
[范例]:
X="VB is very good"
P=Replace(X,good,nice)
输出结果为:P="VB is very nice"
5. StrReverse:反转字符串
[格式]:
P=StrReverse(X)
[说明]:
返回X参数反转后的字符串
[范例]:
(1)X="abc"
P=StrReverse(X)
输出结果:P="cba"
6. Ucase(X),Lcase(X):转换英文字母的大小写
[格式]:
P=Lcase(X)
'将X字符串中的大写字母转换成小写
P=Ucase(X)
'将X字符串中的小写字母转换成大写
[说明]:除了英文字母外,其他字符或中文字都不会受到影响。
[范例]:
(1) 令 X="VB and VC"
则Lcase(X)的结果为"vb and vc",Ucase(X)的结果为"VB AND VC"
7. InStr函数:寻找字符串
[格式]:
P=InStr(X,Y)
从X第一个字符起找出Y出现的位置
P=InStr(n,X,Y)
从X第n个字符起找出Y出现的位置
[说明]:
(1) 若在X中找到Y,则返回值是Y第一个字符出现在X中的位置。
(2) InStr(X,Y)相当于InStr(1,X,Y)。
(3) 若字符串长度,或X为空字符串,或在X中找不到Y,则都返回0。
(4) 若Y为空字符串,则返回0。
(二)日期时间类函数:
1. Year(X),Month(X),Day(X):取出年,月,日
[格式]:
P=Year(X)
取出X"年"部分的数值
P=Month(X)
取出X"月"部分的数值
P=Day(X)
取出X"日"部分的数值
[说明]:Year返回的是公元年,若X里只有时间,没有日期,则日期视为#1899/12/30#
2. Hour,Minute,Second函数:取出时,分,或秒
[格式]:
P=Hour(X)
取出X"时"部分的数值
P=Minute(X)
取出X"分"部分的数值
P=Second(X)
取出X"秒"部分的数值
[说明]:Hour的返回值是0---23之间
[范例]:
X=10:34:23
P=Hour(X)
Q=Minute(X)
R=Second(X)
则输出结果:P=10,Q=34,R=23
3. DateSerial函数:合并年,月,日成为日期
[格式]:DateSerial(Y,M,D)
其中Y是年份,M为月份,D为日期
[说明]:
(1) M值若大于12,则月份从12月起向后推算M-12个月;若小于1,则月份从1月起向后推算1-M个月。
(2) 若日期D大于当月的日数,则日期从当月的日数起,向后推算D-当月日数;若小于1,则日期从1日起向前推算1-D日。
[范例]:
P=DateSerial(2000,02,02)
则结果为P=2000/02/02
4.TimeSerial函数:合并时,分,秒成为时间
[格式]:P=TimeSerial(H,M,S)
其中H为小时数,M为分钟数,S为秒数
[说明]:推算原理同上面的DateSerial
[范例]:
P=TimeSerial(6,32,45)
结果为:P=6:32:45
5.Date,Time,Now函数:读取系统的日期时间
[格式]:
P=Date()
P=Time()
P=Now()
[说明]:这三个函数都无参数
[范例]:
若当前时间为2003年8月29日晚上19点26分45秒,则
P=Now()
结果为:P=2003-08-29 19:26:45
6.MonthName:返回月份名称
[格式]:P=MonthName(X)
[说明]:X参数可传入1---12,则返回值为"一月"、"二月"……,但是在英文Windows环境下,返回的是"January","February"……
[范例]:
P=MonthName(1)
则P="一月"
7.WeekdayName:返回星期名称
[格式]:P=WeekdayName(X)
[说明]:X参数可传入1—7,则返回值为"星期日","星期一"……,但是在英文windows环境下,返回的是"Sunday","Monday"……
[范例]:
P=WeekdayName(1)
结果为:P="星期日"
函数名称 函数功能
Cbool(string) 转换为布尔值
Cbyte(string) 转换为字节类型的值
Ccur(string) 转换为货币类值
Cdate(string) 转换为日前类型的值
Cdbl(string) 转换为双精度值
Cint(string) 转换为整数值
Clng(string) 转换为长整型的值
Csng(string) 转换为单精度的值
Cstr(var) 转换为字符串值
Str(var) 数值转换为字符串
Val(string) 字符串转换为数值
***************************************
Abs(nmb) 返回数子的绝对值
Atn(nmb) 返回一个数的反正切
Cos(nmb) 返回一个角度的余炫值
Exp(nmb) 返回自然指数的次方值
Int(nmb) 返回数字的整形(进位)部份 8.4--9
Fix(nmb) 返回数字的整形(舍去)部份 8.4--8
Formatpercent(表达式) 返回百分比
Hex(nmb) 返回数据的16进制数
Log(nmb) 返回自然对数
Oct(nmb) 返回数字的8进制数
Rnd 返回大于“0”而小于“1”的随机数
Sgn(nmb) 判断一个数字的正负号
Sin(nmb) 返回角度的正铉值
Sqr(nmb) 返回数字的二次方根
Tan(nmb) 返回一个数的正切值
Asc(string) 返回ASCII字符串
Chr(charcode) 根据字符代码返回字符
Instr(string,searchstr) 返回被搜索字符串的第一个字符位置,string是字符串,searchstr是被搜索的字符串
InstrRev(string,searchstr) 同上,只是从右面开始搜索
Lcase(var) 把字符串变为小写
Left(string,nmb) 从string中返回从左面开始的nmb个字符串
Len(string) 返回字符串的长度
Ltrim(string) 截去字符串左边的空格
Filter(inputstrings,value) 返回字符串数组的字集,Inputstrings是字符串组,value是在数组中寻找的字符
Rtrim(string) 截去字符串右边的空格
Trim(string) 截去字符串前后空格
Mid(string,start,len) 在string中返回从start位置开始的len个字符
Replace(string,find,withstr) 在字符串string中,用withstr来替换find字符串
Right(string,nmb) 从string中返回从右面开始的nmb个字符串
Space(nmb) 返回指定空格的字符串
StrComp(string1,string2) 比较两个字符串
Ucase(string) 把字符串变为大写
****************************************
Date() 返回当前系统日期
DateAdd(interval,nmb,date) 用一个基础时间返回指定增加了时间间隔的日期,interval是间隔类型,yyyy-年,m-月,d-日,h-小时,n-分。
DateDiff(interval,nmb1,nmb2) 返回两个时间间隔,interval的意思同上
Datevalue(date) 发挥Date中的日期部份
Day(date) 返回天数
FormatDatetime(date) 返回格式化为日期的表达式
Hour(time) 返回时间的小时数
Minute(time) 返回时间的分钟数
Month(date) 返回日期中的月份
Now() 返回系统的日期和时间
Second(time) 返回时间中的秒数
Time() 返回系统的当前时间
Weekday(date) 返回星期几
WeekdayName(date) 返回星期几的中文名
Year(date) 返回年份
IsArray(var) 判断一个变量是否是数组
IsDate(var) 判断一个变量是否是日期
IsNull(var) 判断一个变量是否为空
IsNumeric 判断表达式是否包含数值
IsObject(var) 判断一个变量是否是对象
TypeName(var) 返回变量的数据类型
************************************
Array(list) 返回数组
CreateObject(class) 创建一个对象
GetObject(pathfilename) 得到文件对象
Inputbox(prompt) 提供一个可供输入数据的对话框
LBound(arrayP) 返回数组的最小索引
Msgbox(string) 输出一个消息框
Split(liststr) 从一个列表字符串中返回一个一维数组
Ubound(array) 返回数组的最大索引
没用过C#,不清楚有没C#中有对应的方法。
不过C#可以使用VB.NET的内置函数。因为VB.NET的内置函数大多都在Microsoft.VisualBasic这个程序集中,只要在C#中引用这个程序集就可以使用VB.NET的函数了。
如果不想每次都使用函数的完全限定名,可以先引入Microsoft.VisualBasic命名空间。
不过,即便是引入了Microsoft.VisualBasic命名空间,还是不能直接使用像Val()这样的函数名,而要加上类名。
Val函数位于Conversion类中,这个类(在VB中是Module)中定义了Val、Hex、Str、Oct、Int、Fix等函数。
具体哪个函数在哪个类里可以在对象浏览器里看,最快捷的方法是在VB.NET环境中使用右键菜单中的“转到定义”。
实例代码:
// 引用Microsoft.VisualBasic程序集
// 并 using Microsoft.VisualBasic;
int a = (int)Conversion.Val("123abc");
Console.WriteLine(a); // 输出123
Console.ReadKey();
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流