close
而因為資料儲存的關係,我們常常需要取的字串的真正長度,而非字數
在全英文及全中文字串中,string.length還算足以利用,但須肯定英文中無全形半形參雜
傍邊英文稠濁或全半形皆有之字串,string.length就不足以應付
"65306", {});
str = "天成翻譯公司愛炎天"
len = str.length
此時使用
len = Encoding.Default.GetByteCount(str)
可獲得實際字串的Byte長度(中文字及全形字為2 bytes)
則newStr 顯示 "I Love 夏?",最後一Byte被截斷
如斯便可取的固定長度之字串
此時len=4
將字串轉為Bytes後在擷取,如下
Dim newStr as String
Dim selLen as Integer = 10
而當碰到中文時,情形如下:
.Net計算中英文字串長度
.Net於程式中常需要使用到較量爭論字串長度
一般利用length較量爭論之
如:
dim str as String
dim len as Integer
str="test"
len = str.length
newStr = Encoding.Default.GetString(Encoding.Default.GetBytes(str), 0翻譯社 selLen)
當中英文夾雜時亦如此
str = "I Love 炎天"
len = str.length
此時len=9,
不論中英文都以一個字計較
此時len=4,
會以字數較量爭論而非較量爭論byte
而如須擷取固定長度之字串可以使用
Encoding.Default.GetBytes(str)取得字串Bytes
Encoding.Default.GetString(strbytes, index, count) 取得從index最先之count長度byte的字串
文章標籤
全站熱搜