<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數(shù)據(jù)加載中……

    在Java中按字節(jié)獲得字符串長度的兩種方法

    本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!

        由于Java是基于Unicode編碼的,因此,一個漢字的長度為1,而不是2。但有時需要以字節(jié)單位獲得字符串的長度。例如,“123abc長城”按字節(jié)長度計算是10,而按Unicode計算長度是8。為了獲得10,需要從頭掃描根據(jù)字符的Ascii來獲得具體的長度。如果是標(biāo)準(zhǔn)的字符,Ascii的范圍是0至255,如果是漢字或其他全角字符,Ascii會大于255。因此,可以編寫如下的方法來獲得以字節(jié)為單位的字符串長度。
        public 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;
            
        }

        當(dāng)然,也可以采用正則表達式來簡化上面的方法,代碼如下:
        public  int getWordCount(String s)
        {

            s 
    = s.replaceAll("[^\\x00-\\xff]""**");
            
    int length = s.length();
            
    return length;
        }
        上面代碼的基本原理是將字符串中所有的非標(biāo)準(zhǔn)字符(雙字節(jié)字符)替換成兩個標(biāo)準(zhǔn)字符(**,或其他的也可以)。這樣就可以直接例用length方法獲得字符串的字節(jié)長度了。





    Android開發(fā)完全講義(第2版)(本書版權(quán)已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2010-04-11 10:53 銀河使者 閱讀(22662) 評論(3)  編輯  收藏 所屬分類: java 原創(chuàng)

    評論

    # re: 在Java中按字節(jié)獲得字符串長度的兩種方法  回復(fù)  更多評論   

    return String.getByte().length() ;
    2010-04-13 13:01 | 深藍色心情

    # re: 在Java中按字節(jié)獲得字符串長度的兩種方法  回復(fù)  更多評論   

    貌似你這個方法不行,是按一個漢字三個字符來算的。@深藍色心情
    2014-04-17 11:15 | Hety

    # re: 在Java中按字節(jié)獲得字符串長度的兩種方法  回復(fù)  更多評論   

    @深藍色心情
    return String.getByte().length() ;
    這個方法簡單是簡單,但這個方法多分配了一個byte[]的buffer.
    有些時候,只為了獲得字節(jié)長度而獲取一個大字符串的buffer出來是非常不恰當(dāng)?shù)?
    2015-09-09 14:58 | 劉旭
    主站蜘蛛池模板: 黄网站在线播放视频免费观看| 免费一级做a爰片性色毛片| 一级特黄录像免费播放中文版| 亚洲欧洲日产专区| 亚洲国产精品一区第二页| 免费人成在线观看网站品爱网日本| 免费阿v网站在线观看g| 久9这里精品免费视频| 一级黄色免费大片| 日韩欧美亚洲国产精品字幕久久久| 中文字幕亚洲第一在线| 亚洲色大成网站WWW久久九九| 免费国产精品视频| 美女黄网站人色视频免费国产| 国产免费一区二区三区| 日本免费大黄在线观看| 视频免费在线观看| 国产精品免费久久| fc2成年免费共享视频18| 羞羞漫画在线成人漫画阅读免费| 亚洲中文字幕无码mv| 亚洲伊人久久大香线蕉| 亚洲国产夜色在线观看| 337p日本欧洲亚洲大胆艺术| 亚洲丁香色婷婷综合欲色啪| 国产l精品国产亚洲区在线观看| 亚洲中文字幕无码一久久区| 中文字幕亚洲电影| 久久久久亚洲爆乳少妇无 | 亚洲成a人片在线观看无码| 亚洲人成电影在线播放| AV在线播放日韩亚洲欧| 亚洲伊人色欲综合网| 亚洲午夜久久久久妓女影院| 中文字幕精品亚洲无线码二区| 中文字幕亚洲一区二区va在线| 亚洲一区二区三区免费| 亚洲午夜久久久影院伊人| 精品久久久久久亚洲| 亚洲久本草在线中文字幕| 久久久亚洲欧洲日产国码二区 |