導航:首頁 > 編程語言 > java字元串長度中文

java字元串長度中文

發布時間:2021-03-05 07:39:06

java怎麼判斷判斷某個欄位中漢字的長度在2到20內

代碼如下:
/**
* 在Java中按位元組獲得字元串長度的兩種方法
*
*/

public class App
{
public static void main( String[] args ) throws UnsupportedEncodingException
{
String str = "只";

System.out.println(getWordCount(str));
System.out.println(getWordCountRegex(str));
System.out.println(getWordCountCode(str,"GBK"));
System.out.println(getWordCountCode(str,"UTF-8"));
}

/*由於是基於Unicode編碼的,因此,一個漢字的長度為1,而不是2。
* 但有時需要以位元組單位獲得字元串的長度。例如,「123abc長城」按位元組長度計算是10,而按Unicode計算長度是8。
* 為了獲得10,需要從頭掃描根據字元的Ascii來獲得具體的長度。如果是標準的字元,Ascii的范圍是0至255,如果是漢字或其他全形字元,Ascii會大於255。
* 因此,可以編寫如下的方法來獲得以位元組為單位的字元串長度。*/
public static int getWordCount(String s)
{
int length = 0;
for(int i = 0; i < s.length(); i++)
{
int ascii = Character.codePointAt(s, i);
if(ascii >= 0 && ascii <=255)
length++;
else
length += 2;

}
return length;

}

/*基本原理是將字元串中所有的非標准字元(雙位元組字元)替換成兩個標准字元(**,或其他的也可以)。這樣就可以直接例用length方法獲得字元串的位元組長度了*/
public static int getWordCountRegex(String s)
{

s = s.replaceAll("[^\\x00-\\xff]", "**");
int length = s.length();
return length;
}

/*按特定的編碼格式獲取長度*/
public static int getWordCountCode(String str, String code) throws UnsupportedEncodingException{
return str.getBytes(code).length;
}
}

⑵ 如何計算中文字元的長度java

通過自String自帶的length()方法獲取字元串長度。

String a="abcdefg";//定義一個字元串
int len = a.length();//通過length獲取字元串長度,這里等於7
length()該方法返回此字元串的長度。長度是等於Unicode代碼單元中的字元串的數目。

⑶ java字元串長度怎麼算

通過String自帶的length()方法獲取字元串長度。

Stringa="abcdefg";//定義一個字元回串
intlen=a.length();//通過length獲取字元串長度,這里等於7

length()該方答法返回此字元串的長度。長度是等於Unicode代碼單元中的字元串的數目。

⑷ java中獲取含中文的字元串長度

逐個char取,判斷ascii值范圍,ASCII算一個、如果是非ASCII范圍認為是中文則算2個
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

⑸ JAVA字元串長度

in characters這個應該指的是單位,要求應該就是用length輸出就好了,如果你只想要字回母的長度,你可答以用空「」替代所有的非字母再統計長度,myString.replace(「[^a-zA-Z]」,「")
關於正則表達式http://regexpal.com/可以在線嘗試

⑹ java如何某個字元串長度大於10,並且能判斷漢字的個數

public class StringLen {

/**
* @param args
*/
public static void main(String[] args) {
String str="我是中國ren";//你需要判斷的版字元串權
String len="";
int j=0;
if(str.length()>10)
System.out.println("該字元串大於10");
char[] c=str.toCharArray();
for(int i=0;i<c.length;i++){
len=Integer.toBinaryString(c[i]);
if(len.length()>8)
j++;
}
System.out.println("共有中文字元:"+j);
}

}

⑺ Java中文字元所佔的位元組數是多少

採用或GBK編碼方式時,一個中文字元佔2個位元組;而採用UTF-8編碼方式時,一個中文字元會佔3個位元組。

⑻ java中如何計算一個字元串的byte長度(一個漢字多少字元)

中文並不一定來是占兩源個位元組的,具體佔多少位元組是跟具體的編碼方式相關的。
比如說:GB2312、GBK、GB18030
編碼是佔用兩個位元組的,但是
UTF-8
編碼的話至少需要佔用三個位元組。
有一個簡單方法,就是把大於
0xff
的字元都作為兩個字元(當然是在
GBK
環境下)
Java
code
publicstaticint
count(String
str)
{
if(str
==null||
str.length
==0)
{
return0;
}
int
count
=0;
char[]
chs
=
str.toCharArray();
for(int
i
=0;
i
<
chs.length;
i++)
{
count
+=
(chs[i]
>0xff)
?2
:
1;
}
return
count;
}
或者你直接使用
int
len
=
str.getBytes("gbk");上面代碼假設你的資料庫編碼格式是
GBK
的,而不是
UTF-8
的,如果是
UTF-8
的話,上面的代碼無效!1位元組等於8比特,一個字母是1位元組,而一個漢字要用2個位元組。一個漢字=2個字元

⑼ java中如何計算一個字元串的byte長度(一個漢字多少字元)

中文並不一定是占兩個位元組的,具體佔多少位元組是跟具體的回編碼方式相關的。 比如說:GB2312、答GBK、GB18030 編碼是佔用兩個位元組的,但是 UTF-8 編碼的話至少需要佔用三個位元組。 有一個簡單方法,就是把大於 0xff 的字元都作為兩個字元(當然是在 GBK 環境下) Java code publicstaticint count(String str) { if(str ==null|| str.length ==0) { return0; } int count =0; char[] chs = str.toCharArray(); for(int i =0; i < chs.length; i++) { count += (chs[i] >0xff) ?2 : 1; } return count; } 或者你直接使用 int len = str.getBytes("gbk");上面代碼假設你的資料庫編碼格式是 GBK 的,而不是 UTF-8 的,如果是 UTF-8 的話,上面的代碼無效!1位元組等於8比特,一個字母是1位元組,而一個漢字要用2個位元組。一個漢字=2個字元

⑽ Java中文字元所佔的位元組數是多少

Java語言中,中文字元所佔的位元組數取決於字元的編碼方式,一般情況下,採用ISO8859-1編碼方式時,一個中文字元與一個英文字元一樣只佔1個位元組;採用GB2312或GBK編碼方式時,一個中文字元佔2個位元組;而採用UTF-8編碼方式時,一個中文字元會佔3個位元組。我們可以通過String類的getBytes(String

charsetName)方法來獲取到字元串以指定編碼方式編碼後所得到的位元組數組,然後位元組數組的長度就是該字元串在指定編碼方式下所佔的位元組數。下面為一個測試示例:

public static void main(String []args) throws UnsupportedEncodingException {

// 運行結果:2

System.out.println("測試".getBytes("ISO8859-1")。length);

// 運行結果:4

System.out.println("測試".getBytes("GB2312")。length);

// 運行結果:4

System.out.println("測試".getBytes("GBK")。length);

// 運行結果:6

System.out.println("測試".getBytes("UTF-8")。length);

}
注意:String類的不帶參數的getBytes()方法會以程序所運行平台的默認編碼方式為准來進行轉換,在不同平台下就會有不同的結果,因此建議使用指定編碼方式的getBytes(String charsetName)方法。

閱讀全文

與java字元串長度中文相關的資料

熱點內容
網上定製衣服app哪個好便宜 瀏覽:972
word頁碼續前節 瀏覽:137
dgs編程什麼意思 瀏覽:240
pscs6入門教程零基礎 瀏覽:339
控制工程需要掌握哪些編程 瀏覽:532
javaformac107的 瀏覽:736
小米手機程序上網設置 瀏覽:254
d800固件升級 瀏覽:425
js報錯缺少函數 瀏覽:953
java提取xml內容 瀏覽:795
為什麼說英語對編程不重要 瀏覽:456
java里get 瀏覽:105
江蘇五軸編程數控培訓哪個好 瀏覽:117
快牙軟體在哪個文件夾 瀏覽:698
為什麼信函文件老列印不了 瀏覽:372
linux連接smb 瀏覽:719
如何給excel數據添加單位 瀏覽:245
ob玩的肉搏是什麼版本 瀏覽:752
通遼的公交車的app在哪裡看呀 瀏覽:120
榮耀3c電信版升級30 瀏覽:669

友情鏈接