[問題] String分割問題

作者: XDXQQ (傑洛尼莫)   2017-04-24 20:30:21
大家好
請問String要如何以Byte分割?
舉例來說
String a="ABC安";
想要將a以2byte來分割
可是當尾巴剛好遇到中文字時
若無法分割,則換下一個字串
結果就會變成a[0]="AB",a[1]="C",a[2]="安" 這樣
請問有辦法辦到嗎?
作者: steven11329 (清新柳橙)   2017-04-24 20:41:00
java預設每個字元不就兩個byte了嗎?
作者: ssccg (23)   2017-04-24 20:43:00
char是2byte不談byte數,你規則寫出來,不就照規則寫個迴圈做就好?
作者: XDXQQ (傑洛尼莫)   2017-04-24 20:53:00
我的意思是每個字串2byte,可是如果這個字串已經有一個英文字了,接下來那個字是中文不就塞不進去,需要到下一個字串,想請問JAVA中有沒有什麼涵式可以解決這種問題
作者: ssccg (23)   2017-04-24 21:14:00
英文就是2 byte
作者: XDXQQ (傑洛尼莫)   2017-04-24 21:33:00
英文字不是1byte嗎
作者: ssccg (23)   2017-04-24 21:48:00
不是
作者: y3k (激流を制するは静水)   2017-04-24 21:50:00
String.getBytes()自己實驗看看便知
作者: ssccg (23)   2017-04-24 22:00:00
getBytes是編碼後的結果,不一定...中文系統的話大概會用MS950變成英文1byte 中文2byteString本身其實本來就沒有byte數的概念,就是以char為單位只是java char在記憶體中是UTF-16
作者: popcorny (畢業了..@@")   2017-04-24 23:51:00
用Character.isIdeographic去判斷中日韓
作者: XDXQQ (傑洛尼莫)   2017-04-25 01:12:00
因為剛接觸java很多不懂,所以才會誤以為英文就是1byte

Links booklink

Contact Us: admin [ a t ] ucptt.com