VB.NET編程語言中有很多函數(shù)的應用比較復雜,需要我們通過不斷的實踐,積累經(jīng)驗才能熟練的掌握,并正確的將他們應用在程序中,完成我們的需求。在這里我們就會為大家介紹其中的VB.NET Mid函數(shù)的相關(guān)應用。
VB.NET Mid函數(shù)一般用于返回原字符串中子串,比如說
- 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
具體函數(shù)說明如下:
返回 Variant (String),其中包含字符串中指定數(shù)量的字符。
語法
- Mid(string, start[, length])
Mid 函數(shù)的語法具有下面的命名參數(shù):
string
必要參數(shù)。字符串表達式,從中返回字符。如果 string 包含 Null,將返回 Null。
start
必要參數(shù)。為 Long。string 中被取出部分的字符位置。如果 start 超過 string 的字符數(shù),VB.NET Mid函數(shù)返回零長度字符串 ("")。
length
可選參數(shù);為 Variant (Long)。要返回的字符數(shù)。如果省略或 length 超過文本的字符數(shù)(包括 start 處的字符),將返回字符串中從 start 到尾端的所有字符。
說明
欲知 string 的字符數(shù),可用 Len 函數(shù)。
注意 MidB 函數(shù)作用于字符串中包含的字節(jié)數(shù)據(jù),如同在雙字節(jié)字符集(DBCS)語言中一樣。因此其參數(shù)指定的是字節(jié)數(shù),而不是字符數(shù)。對于使用 MidB的示例代碼,請參閱示例主題中的第二個示例。
那么我們是否可以利用它來進行一些字符串替換呢?請在你機器上運行下面函數(shù):
- Option Explicit
- Public Function Test() As String
- Dim s As String
- s = "ABCD"
- Mid(s, 1, 1) = "T"
- Test = s
- End Function
你發(fā)現(xiàn)什么了?WOW,輸出字符串變成“TBCD”了! 是的,我們可以利用VB.NET Mid函數(shù)來實現(xiàn)字符串的替換(非常令人高興的事情)!那么如果我把“T”變成“TX”呢?請看下面代碼:
- Option Explicit
- Public Function Test() As String
- Dim s As String
- s = "ABCD"
- Mid(s, 1, 1) = "TX"
- Test = s
- End Function
再運行一次,不出所料,它還是“TBCD“。雖然VB.NET Mid函數(shù)能夠做一些簡單的字符串的替換,但是它的前提條件是字符串不能夠超過它的返回長度(例子中的是1)。那么可能有些網(wǎng)友會問,如果小于它的返回長度會發(fā)生什么呢?嗯,好的想法,還是讓實驗結(jié)果來說明它吧,請看:
- Option Explicit
- Public Function Test() As String
- Dim s As String
- s = "ABCD"
- Mid(s, 1, 3) = "TX"
- Test = s
- End Function
運行后它的結(jié)果如下:”TXCD”。
從上面的結(jié)果來看,Mid能夠做一些簡單的字符串替換,但是必須遵循以下條件:
替換的最大長度由Mid返回的最大長度決定。如果替換串的長度大于它的返回長度,那么只有替換串的前面一部分用于替換。如果替換串的長度小于它的返回長度,那么原字符串中超過部分將被保留,而其它部分被替換。雖然VB.NET Mid函數(shù)在某些場合有很巧的功能,但是如果涉及到常用字符串操作,個人建議還是盡量用Replace(expression, find, replace[, start[, count[, compare]]])來完成。