作者XDXQQ (傑洛尼莫)
看板java
標題[問題] String分割問題
時間Mon Apr 24 20:30:21 2017
大家好
請問String要如何以Byte分割?
舉例來說
String a="ABC安";
想要將a以2byte來分割
可是當尾巴剛好遇到中文字時
若無法分割,則換下一個字串
結果就會變成a[0]="AB",a[1]="C",a[2]="安" 這樣
請問有辦法辦到嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.28.56
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1493037024.A.7C7.html
1F:→ steven11329: java預設每個字元不就兩個byte了嗎? 04/24 20:41
2F:→ ssccg: char是2byte 04/24 20:43
3F:→ ssccg: 不談byte數,你規則寫出來,不就照規則寫個迴圈做就好? 04/24 20:46
4F:→ XDXQQ: 我的意思是每個字串2byte,可是如果這個字串已經有一個英 04/24 20:53
5F:→ XDXQQ: 文字了,接下來那個字是中文不就塞不進去,需要到下一個字 04/24 20:54
6F:→ XDXQQ: 串,想請問JAVA中有沒有什麼涵式可以解決這種問題 04/24 20:54
7F:→ ssccg: 英文就是2 byte 04/24 21:14
8F:→ XDXQQ: 英文字不是1byte嗎 04/24 21:33
9F:→ ssccg: 不是 04/24 21:48
10F:→ y3k: String.getBytes()自己實驗看看便知 04/24 21:50
11F:→ ssccg: getBytes是編碼後的結果,不一定... 04/24 22:00
12F:→ ssccg: 中文系統的話大概會用MS950變成英文1byte 中文2byte 04/24 22:01
13F:→ ssccg: String本身其實本來就沒有byte數的概念,就是以char為單位 04/24 22:01
14F:→ ssccg: 只是java char在記憶體中是UTF-16 04/24 22:03
15F:推 popcorny: 用Character.isIdeographic去判斷中日韓 04/24 23:51
16F:→ XDXQQ: 因為剛接觸java很多不懂,所以才會誤以為英文就是1byte 04/25 01:12