字节--编程题

这篇博客介绍如何编写一个函数,根据字节数截取字符串,确保汉字不被部分截取。函数考虑了UTF-8和GBK编码中字母和汉字的字节表示,字母的字节编码大于0,而汉字的字节编码小于0。提供了ASCII码对照表和字符编码查询资源链接作为参考。
摘要由CSDN通过智能技术生成

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串, 但要保证汉字不被截取半个,如“我 ABC”,4,应该截取“我 AB”,输入“我 ABC 汉 DEF”,6,应该输出“我 ABC”,而不是“我 ABC+汉的半个”。


思路:
– utf-8中,一个字母用一个字节表示,一个汉字用三个字节表示,特殊的汉字用四个字节表示;
– gbk中,一个字母用一个字节表示,一个汉字用两个字节表示。
– 字母的字节编码> 0
– 汉字的字节编码< 0
附一个ASCII码对照表【http://tool.oschina.net/commons?type=4】
和一个字符编码查询表【http://www.mytju.com/classcode/tools/encode_utf8.asp】

	public static void main(String[] args) throws UnsupportedEncodingException {
		String str = "嗨hello你好";
		int bytenum = 8;
		System.out.println(cutString(str,bytenum ));
	}
	
	public static String cutString(String str, int bytenum ) throws U
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值