Java編制程序: 如何看到字符的數字在串的(! = String.length ())
串的長度可以不同地被解釋-
- 炭灰的數字在串的
- 字符的數字在串的
- 字节数在串的
String.length ()準確地給您炭灰的数量在串的。
然而炭灰不一定是一個完全字符。 為什麼?
補充字符存在於Unicode charset。 這些是有在被設置的基地之上的代码点的字符,并且他們比0xFFFF有價值偉大。 他們一直延伸由0×10FFFF決定。
在Java,這些補充字符代表作為代理人對,對在一個指定范围落的炭灰單位。 主導或高代理人價值在0xD800通过0xDBFF範圍。 落後或低值代理人在0xDC00通过0xDFFF範圍。
J2SE 5.0 API有一個新的串方法: 告诉您的codePointCount (int beginIndex, int endIndex)多少個Unicode代码点在二個索引之間。 给定值提到代碼單位或燒焦地點,因此endIndex -整個串的beginIndex與串的長度是等效的。
因此:
int characterLength = myString.codePointCount (0, charLength);
作为以前:
int charLength = myString.length ();
除非您計劃賣您的軟件到中國或日本(讀國際化)您是不太可能遇到在charLength和characterLength之间的任何区别。
因此多少個字節在串?
int byteCount = myString.getBytes () .length;
getBytes轉換它的Unicode字符成遺產charset除是Unicode而不是遺產charset multibyte內碼的UTF-8之外。 它然後退回在字節列陣的字符。
歸檔在 标题新闻之下, 怎麼對, Java軟件, 技術筆記 |
|
RSS 2.0 |
Trackback 這篇文章 |
給這篇文章發電子郵件
您可以也喜歡讀 |


增加到Technorati喜愛


































2005年11月11日在11:12上午
因此您說您應該總是使用「int byteCount = myString.getBytes () .length; 」而不是「myString.length ()」,在案件您以后國際化?
2007年8月30日在1:26上午
有此的一個例子。
2007年8月30日在3:12上午
是,賈森。
2007年8月30日在3:13上午
我在文章上給了例子代碼。 其他例子您尋找什麼?
2007年10月1日在3:41 pm
有沒有方式過濾標點相似与節目只計數信件的設置符號於?
2008年4月1日在11:13 pm
怎麼可能i找到串的長度與的使用在Java的所有作用。 plz幫助我。