天天看点

Java---练习(面试题) :字符串截取(2-最终版)

在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符。

但对应的字节数不同,一个汉字占两个字节。

定义一个方法,按照指定的字节数来取子串。

如:对于“ab你好”,如果取三个字节,那么子串就是ab与“你”字的半个,那么半个就要舍弃。如果取四个字节就是“ab你”,取五个字节还是“ab你”。

上面给出的是在gbk编码下的截取字符串。

下面我写了个代码,可以在utf-8和gbk编码下都能截取字符串。

注意:utf-8下的绝大多数汉字都是3个字节,所以,为了简化,全部当成了3个字节处理。

注意:

在上一个中,我把题意理解错了,其实题目要求的只是输出第一个n字节的字串就可以了。

在上一个中我是把一个字符串按照n拆分了。。。。

GBK下的运行结果:

(汉字为2个字节)

UTF-8下的运行结果:

(汉字理解为3个字节)