用字节数截取字符串
程序员文章站
2022-05-24 23:34:42
...
昨天去参加中科软的笔试,编程题有一道是关于字符串的,用字节数来截取字符串,如果出现中文被截断了,应该丢去中文的那个字节。如:String a = "中aaa国ccc";截取6个字节的字符串,即:中aaa+"国"的前一部分。设计一个函数,把截到的中文的那部分去掉。
当时,不会做,自己乱写一通哈。回来后,查找资料,发现可以利用java的编码规则解决。就是,Unicode编码啦!
java代码:
private static String cutStringByBytes(String s,int length) throws UnsupportedEncodingException{ byte[] bytes = s.getBytes("unicode"); int n = 0; // 当前的字节数 int i = 2; // 要截取的字节数,bytes数字的前面两位是标志位 while(n < length) { if (bytes[i] != 0) { n++; } i++; } // 如果i为奇数 if (i % 2 == 1) { i = i - 1; } return new String(bytes, 0, i, "unicode"); }
下一篇: maven 使用findbugs 插件