要求:
編寫一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。但是要保證漢字不被截半個(gè),如“我ABC”4,應(yīng)該截為“我AB”,輸入“我ABC漢DEF”,6,應(yīng)該輸出為“我ABC”而不是“我ABC+漢的半個(gè)
基本知識:
先了解下基本的單位:
1、比特(bit)即一個(gè)二進(jìn)制位,例如100011就是6比特。
2、字節(jié)(byte),這是計(jì)算機(jī)中數(shù)據(jù)類型最基本的單位了,8bit組成1byte。
java要確定每種基本類型所占存儲空間的大小,它們的大小并不像其它大多數(shù)語言那么隨機(jī)器硬件架構(gòu)的變化而變化。這種所占存存儲空間大小的不變性是java程序具有可移值性的原因之一。
java中的boolean長度是1個(gè)字節(jié),實(shí)際上它只有1bit在起作用,其它的全部是0.
java的中基本類型數(shù)據(jù)的大小如下:
boolean 1-byte(實(shí)際上就是1bit在起作用)
char 2-bytesbyte 1-byteshort 2-bytesint 4-byteslong 8-bytesfloat 4-bytesdouble 8-bytes
一個(gè)英文字母、或一個(gè)漢字都是1個(gè)Unicode代碼單元,Unicode目前普遍采用的是UCS-2,它用兩個(gè)字節(jié)來編碼一個(gè)字符,一個(gè)字符在Unicode中就是一個(gè)代碼單元。
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編寫測試程序,注意把文本編碼設(shè)置成GBK,否則得到的結(jié)果可能有所不同。
以上就是北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)的小編針對“Java截取字符串的面試題”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
Java面試題