解決這個問題之前,我們須要了解的是,在gbk字符集的編碼中漢字佔2個位元組。字母和其它字元佔乙個位元組,而在utf-8中漢字佔3,或者4個位元組,字母佔2個位元組,因為,utf一下佔2個3個位元組。一下佔4個位元組,不好拆分出指定的漢字加字母。所以才用gbk的編碼格式,漢字佔2個位元組,字母乙個位元組。
在把漢字轉換成位元組的時候。輸出的位元組的值小於0,字母轉換成位元組的時候,輸出的值就是其相應的數字。
在string物件中。它的長度計算,是漢字算乙個,字母也算乙個
**例如以下:
package com.wj.demo1;
public class splitchinese
public static int trimgbk(byte buf,int n){
int num=0;//標誌變數,擷取的長度
boolean bchinesefirsthalf=false;//標誌是否出現漢字
system.out.println("the buf size is :"+buf.length);
for(int i=0;i
當int num=trimgbk(st2.getbytes("gbk"),2);/的時候輸出為
str is 7
the buf size is :9
byte[i]=97
byte[i]=-50a
當int num=trimgbk(st2.getbytes("gbk"),1);/的時候輸出為
str is 7
the buf size is :9
byte[i]=97a
當int num=trimgbk(st2.getbytes("gbk"),3);/的時候輸出為
str is 7
the buf size is :9
byte[i]=97
byte[i]=-50
byte[i]=-46a我
當int num=trimgbk(st2.getbytes("gbk"),4);/的時候輸出為
str is 7
the buf size is :9
byte[i]=97
byte[i]=-50
byte[i]=-46
byte[i]=65
a我a
當int num=trimgbk(st2.getbytes("gbk"),6);/的時候輸出為
str is 7
the buf size is :9
byte[i]=97
byte[i]=-50
byte[i]=-46
byte[i]=65
byte[i]=66
byte[i]=67
a我abc
當int num=trimgbk(st2.getbytes("gbk"),7);/的時候輸出為
str is 7
the buf size is :9
byte[i]=97
byte[i]=-50
byte[i]=-46
byte[i]=65
byte[i]=66
byte[i]=67
byte[i]=-70
a我abc
當int num=trimgbk(st2.getbytes("gbk"),8);/的時候輸出為
str is 7
the buf size is :9
byte[i]=97
byte[i]=-50
byte[i]=-46
byte[i]=65
byte[i]=66
byte[i]=67
byte[i]=-70
byte[i]=-70
a我abc漢
當int num=trimgbk(st2.getbytes("gbk"),9);/的時候輸出為
str is 7
the buf size is :9
byte[i]=97
byte[i]=-50
byte[i]=-46
byte[i]=65
byte[i]=66
byte[i]=67
byte[i]=-70
byte[i]=-70
byte[i]=97
a我abc漢a
字串刪除指定字元
一 演算法描述 給定乙個字串和模式字串,要求將出現在模式字串的字元在原字串中刪除。二 演算法思路 從題面理解,常規思路是遍歷原字串和模式字串,將原字串的每個字元和模式串的每個字元比較,如果比較相等,則不輸出,其時間複雜度為o m n m和n各自為字串和模式字串的長度 另一種高效的思路是以空間換時間,...
ORACLE in 字串,字串,字串
因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...
擷取包含漢字字串的子字串
擷取字串 本書字數 209.9萬字 中間的數字209.9 char test 10 測試 printf s d n test,int strlen test 得到結果是6也就是說每個漢字占用6個字元 然後測試目標字串的大小 char strlen tmp 40 本書字數 209.9萬字 printf...