vb len 中文 的位數計算的解決方法

2021-04-16 23:25:25 字數 711 閱讀 6919

ps:對於pan05、black205兩位提出的部份中文還是計算為1位的問題,已修改,感謝兩位。

通常vb中的len("中文"),返回的是2,因為vb計算的是unicode的字元個數,所以每個漢字(日文、韓文)算作乙個字元,但是如果我們不想計算unicode的個數,而是要將漢字當作2位時,怎麼辦?

可以用如下的函式實現:

private

function

lenc(s 

asstring

) as

integer

dimn 

asinteger

lenc =0

forn =1

tolen

(s)if

(ascw(

mid(s, n, 

1)) 

>

256) 

or(ascw(

mid(s, n, 

1)) 

<0) 

then

lenc 

=lenc +2

else

lenc 

=lenc +1

endif

next

nend function

private

subcommand1_click()

print

lenc(

"aaa-中文自選")

end sub

計算 1 的位數

population function 例如,數字 37 的二進位制形式是 100101,所以它包含有三個設定成 1 的位。乙個計算 32 位整數 中 1 的位數的簡單c語言程式是 int count ones unsigned int x returnresult 不幸的是,這個簡單的演算法在現代...

The One day 中位數的計算

中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。例如,2,3,4 的中位數是 3 2,3 的中位數是 2 3 2 2.5 設計乙個支援以下兩種操作的資料結構 void addnum int num 從資料流中新增乙個整數到資料結構中。double findmedian 返...

響應中文的解決

向頁面響應的方法 getoutputstream getwriter 這兩個方法是互斥的.做出響應的時候只能使用其中的一種流響應.輸出中文亂碼的處理 位元組流 設定瀏覽器預設開啟的編碼 resposne.setheader content type text html charset utf 8 設...