截取字符串的一部分,方法有多种:
1.截取索引x与索引y之间的内容,利用String类方法 subString(int x,inty)
2.截取n个字节,利用getBytes将字符串转成字节数.利用String构造方法new String(byte[]bytes,intx,inty)生成一个新的字符串
3.截取n个字节,转成getBytes数组之后,还可以利用字节流read()读取和写出write()写入byte数组,再将数组转为字符串
对于截取n个字节时,假如字符串中含有汉字,就有可能读取到半个汉字(输出以?表示)比如截取字符串"JAVA我爱你"前5个字节,利用上面第二种方法结果为"JAVA?"
想要去除这半个汉字,只要将要获取的字节数减1;而判断什么时候该减什么时候不该减,有以下参考:
a.利用String的方法charAt(int index)判断新字符串s最后一个字符与原字符串相同位置的最后一个字符是否相同.
b.利用汉字编码开头为负数的特点,判断字符数组bytes最后一位是否为负数
c.在原字符串中截取与新字符串相同的长度,比较是否相同
|
|