原文:按字节截取字符串避免半个汉字

总结: 思路:汉字的unicode编码都是负数 注意事项:字符串的输入编码和输出编码 已经eclipse等编译工具的编码都会影响结果 所有最好把编码设置一下或统一 自己的代码 网上参考 今天去一个公司面试,碰到一个很久前练过的题目,竟然没答出来,感觉好囧 回来好好研究一番,贴上代码: String类的length 方法是以unicode代码单元,换言之就是char的个数为来统计的。所以使用sub ...

2016-09-12 16:17 0 4880 推荐指数:

查看详情

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

字符串打散成字节之后输出的字节值变成了正数和负数,字符为一个正数,汉字为两个负数 所以为了不输出半个汉字,可以判断负数的个数,然后确定截取数到底是多少,通过new String(buf,0,len)的构造方法把字节转换成字符串 ...

Thu Jan 25 02:28:00 CST 2018 0 2627
字节长度截取字符串

业务场景:Oracle数据字符集UTF-8,字段类型为VARCHAR2(2000)。当插入字符串字节长度超过2000时,就会报错,使用subString(0,2000)当字符串包含中文时,也会报错,又不能直接只截取1000长度。所以需要一个根据字节长度来截取字符串的方法。 下面提供一下 ...

Mon Nov 12 19:47:00 CST 2018 0 752
java按字节截取字符串

解析:上面这个方法将汉字默认为2个字节,其他为1个字节,缺点是遇到UTF-8等编码格式的时候不能用,经过代码验证"UTF-8"是默认一个汉字占3个字节。 结果:--str1.length=62----Byte长度=105-------str2=一百二十个字符怎么就那么难弄呢我该说 ...

Mon Apr 08 18:06:00 CST 2013 0 12697
字节长度截取字符串

默认的截取字符串都是根据字符长度或位置截取的,典型的两个方法是substr和substring。 这样导致的问题是截取同样长度的字符串时,多字节字符汉字等)和单字节字符(半角英文字母、半角数字)占的位置长度差距较大,视觉上不太美观,比如同样是10个字符: /* * param ...

Tue Apr 17 03:12:00 CST 2018 0 1486
java 按字节截取字符串

import java.io.UnsupportedEncodingException;import org.springframework.util.StringUtils; public class CutString{ /** *判断是否是一个中文汉字 *@param c 字符 ...

Thu May 13 23:54:00 CST 2021 0 1550
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM