Java截取字串的面試題

來源:互聯網
上載者:User

要求:

編寫一個截取字串的函數,輸入為一個字串和位元組數,輸出為按位元組截取的字串。 但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,6,應該輸出為“我ABC”而不是“我ABC+漢的半個

基本知識:

先瞭解下基本的單位:
1、位元(bit)即一個二進位位,例如100011就是6位元。
2、位元組(byte),這是電腦中資料類型最基本的單位了,8bit組成1byte。

java要確定每種基本類型所佔儲存空間的大小,它們的大小並不像其它大多數語言那麼隨機器硬體架構的變化而變化。這種所佔存儲存空間大小的不變性是 java程式具有可移值性的原因之一。

java中的boolean長度是1個位元組,實際上它只有1bit在起作用,其它的全部是0.

java的中基本類型資料的大小如下:
boolean 1-byte(實際上就是1bit在起作用)
char 2-bytes
byte 1-byte
short 2-bytes
int 4-bytes
long 8-bytes
float 4-bytes
double 8-bytes
一個英文字母、或一個漢字都是1個Unicode 代碼單元,Unicode目前普遍採用的是UCS-2,它用兩個位元組來編碼一個字元,一個字元在Unicode中就是一個代碼單元。

代碼    public String splitString(String src, int size){
        String result = new String(src.getBytes(), 0, size);
        if(!src.startsWith(result)){
            result = new String(src.getBytes(), 0, size-1);
        }
        return result;
    }

在這裡要注意的是,如果用Eclipse編寫測試程式,注意把文本編碼設定成GBK,否則得到的結果可能有所不同。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.