[问题] 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