5.21 如何截取包含中文的字符串
【出自MT面试题】
难度系数:★★★☆☆ 被考察系数:★★★☆☆
题目描述:
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,例如"人ABC"4,应该截为"人AB",输入"人ABC们DEF",6,应该输出为"人ABC"而不是"人ABC+们的半个"。
分析与解答:
在Java语言中,默认使用的Unicode编码方式,即每个字符占用2字节,因此可以用来存储中文。虽然String是由char所组成的,但是它采用了一种更加灵活的方式来存储,即英文占用一个字符,中文占用两个字符,采用这种存储方式的一个重要作用就是可以减少所需的存储空间,提高存储效率。根据这个特点,可以采用如下代码来完成题目的要求:

程序的运行结果如下:
人ABC