根据指定字节位数截取字符串

    今天从朋友那得知了一个问题,根据指定的字节位数截取字符串。

    刚拿到这个问题之后,有一点思路,就是普通字符占一个字节,像数字和字母,但是中文字符一般占两个字节或者三个字节。比如,在utf8的编码格式下,中文占三个字节,在gbk模式下中文占两个字节,这就需要先来辨别一下当前的字符集编码格式。

    当然,有了前边这些思路,之后就是需要判断当前字节到底是中文还是数字或者字母,因为作者目前还是一个菜鸟,所以百度上去查了一下,原来中文的自己ASCII码是负数,英文和数字的ASCII码是正数,那这就好办了。

 

废话不多说,代码如下,希望对大家有所帮助,当然有错误和可以有优化的地方,还望大佬们指正。

勿喷~~~

    

public class SubStringByByteNumUtil {

	/*public static void main(String[] args) {
		String s = "我ew爱你";
		subString(s, 6);
	}*/

	private static void subString(String str, int num) {
		if (str.isEmpty() || 0 == str.length()) {
			return;
		}
		if (num > str.getBytes().length) {
			num = str.getBytes().length;
		}
		int count = 0;
		byte[] arr = str.getBytes();
		for 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值