有許多字符串操作技巧可以幫助你優(yōu)化代碼,以獲得更好的性能。StringBuilder允許你執(zhí)行重復(fù)的字符串操作,取得比手工操作更佳的性能。在本文中,我說明在VB.NET中利用StringBuilder的情況。應(yīng)用StringBuilder的優(yōu)點(diǎn)StringBuilder是一個(gè)可修改字符的緩沖器。當(dāng)你不直接進(jìn)行字符串操作而應(yīng)用StringBuilder時(shí),與每次重復(fù)生成一個(gè)含有修正的新字符串相比,這樣可以獲得更佳的性能。你不能總是希望性能得到提高,因?yàn)镾tringBuilder有少量的過度操作,會(huì)將指定字符串的內(nèi)容復(fù)制到StringBuilder中,然后將由StringBuilder得到的結(jié)果值復(fù)制回字符串對(duì)象中。在進(jìn)行二個(gè)或更多字符串操作時(shí),我建議使用StringBuilder。(如果只有一項(xiàng)改變,將值復(fù)制進(jìn)StringBuilder再拷貝出來并不會(huì)改善性能。)StringBuilder方法Append:允許你在緩沖器末端增加一個(gè)字符串。注意,在應(yīng)用StringBuilder對(duì)象時(shí)不能使用操作符。
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)墨江,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
Insert:允許你在StringBuilder對(duì)象中增加一個(gè)字符串。(就像String.Insert一樣。)
Remove:允許你從StringBuilder對(duì)象中刪除一個(gè)字符串。(就像String.Remove一樣。)
Replace:允許你替代StringBuilder對(duì)象的一部分。(就像String.Replace一樣。)
實(shí)例在列表A的樣本代碼中,我建立一個(gè)字符串變量strOriginal來保存原始文本的值。我還定義StringBuilder對(duì)象BuilderStr,我將利用它對(duì)存儲(chǔ)在srtOriginal中的文本進(jìn)行字符串操作。定義BuilderStr時(shí),我將它設(shè)定到strOriginal的值中。之后,我操作BuilderStr,給它添加一些文本(“is”,
”very”,”
important”),然后再利用Replace方法去掉”very”這個(gè)單詞。(注意,在這個(gè)例子中,你使用Remove方法而非Replace方法。)最后,我用BuilderStr.ToString的值更新strOriginal,并在信息框中顯示所得到的字符串。
a="@1991@1205@844@3276@1104@747@1069@0.9@4@3@104810571073
"
a=Replace(a,"@",",")
a=Replace(a,"",",")
dim b()
b=split(a,",")
字符編碼轉(zhuǎn)換嗎?
1.字符與gb2312(gbk的子集):
Public Function GBKEncode(ByVal sInput As String) As String
Dim ret_GBKEncode As String = ""
Dim i As Integer
Dim startIndex As Integer = 0
Dim endIndex As Integer
Dim x() As Byte = System.Text.Encoding.Default.GetBytes(sInput) '字符以及字符串在vb2008中都是以u(píng)nicode編碼存儲(chǔ)的
endIndex = x.Length - 1
For i = startIndex To endIndex
ret_GBKEncode = "%" Hex(x(i))
Next
Return ret_GBKEncode
End Function
'GBK解碼
Public Function GBKDecode(ByVal sInput As String) As String
sInput = sInput.Replace("%", "")
Dim ret_GBKDecode As String = ""
Dim sLen As Integer = sInput.Length
Dim n As Integer = sLen \ 2
Dim sBytes(0 To n - 1) As Byte
'轉(zhuǎn)化為字節(jié)碼
For i As Integer = 1 To n
sBytes(i - 1) = CByte("H" sInput.Substring(2 * i - 2, 2))
Next
'將字節(jié)碼轉(zhuǎn)化為字符串
ret_GBKDecode = System.Text.Encoding.Default.GetString(sBytes)
Return ret_GBKDecode
End Function
2.Unicode字符串為UTF-8
Imports System.Text
Public Function StringAsUtf8Bytes(ByVal strData As String) As Byte()
Dim bytes() As Byte
bytes = Encoding.UTF8.GetBytes(strData)
Return bytes
End Function
'這里可以類推出好幾種。