取指定的字串,字串裡面有漢字和字母

2021-09-07 12:48:46 字數 2212 閱讀 6697

解決這個問題之前,我們須要了解的是,在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...