从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表)【笔记】
来源:互联网 发布:python廖雪峰 pdf 编辑:程序博客网 时间:2024/05/01 23:39
<pre name="code" class="java">/** * * 需求: * 编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表), * * 例如:从“HM程序员”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要 * 是"HM"而不要出现半个中文 */package com.itheima;public class Test10 {public static void main(String[] args) throws Exception {// 输入要截取的字符串String s = "HM程序员";System.out.println(mySubstring(s, 3));}public static String mySubstring(String s, int length) throws Exception {// 获取一个字符占两个字节的Unicode的编码格式的字节数组byte[] bytes = s.getBytes("Unicode");/*String的getBytes()方法是得到一个系统默认的编码格式的字节数组中文是用unicode进行编码的于是在接收和发送的时候,都必须进行bytes的转换*/// 表示当前的字节数int n = 0;// 要截取的字节数,从第3个字节开始int i = 2;for (; i < bytes.length && n < length; i++) {// 奇数位置,如3、5、7等,为UCS2编码中两个字节的第二个字节if (i % 2 == 1)n++; // 在UCS2第二个字节时n加1else {// 当UCS2编码的第一个字节不等于0时,该UCS2字符为汉字,一个汉字算两个字节if (bytes[i] != 0) {n++;}}}// 如果i为奇数时,处理成偶数if (i % 2 == 1) {// 该UCS2字符是汉字时,去掉这个截一半的汉字if (bytes[i - 1] != 0)i = i - 1;// 该UCS2字符是字母或数字,则保留该字符elsei = i + 1;}return new String(bytes, 0, i, "Unicode");}}
0 0
- 从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表)【笔记】
- 编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表),两种方法的比较。
- 黑马程序员—编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表)
- Java 测试,按字节数截取字符串,不能输出半个中文
- 截取字符串,中文不能截取半个
- 按照字节数截取一个字符串,“abc你好” 如果截取到半个中文,舍弃,比如 截取4个字节 abc。截取 5个字节abc你
- 黑马程序员 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个
- 截取字符串(编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输...)
- JAVA面试题_根据字节数截取字符串,但是汉字不能截取半个。
- 对指定的含中文的字符串按指定的字节数截取,碰到半个汉字的时候,不截取此半个汉字。
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个。
- 编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串。 但是要保证汉字不被截半个。
- 字符串截取(按指定的字节数)汉字不可以截取半个
- JAVA 中字符串的截取,要求不能截取半个汉字
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不
- 利用字节数组截取字符串,避免出现半个中文
- Java中文字符串截取,不能返回半个汉字
- Android基础整合项目之节日群发助手(三)
- Wildcard Matching
- 【Android】 保存图片到系统图库, 并立即显示在图库中
- 修改hibernate生成数据库的命名规则
- HBase Coprocessors机制
- 从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表)【笔记】
- Ubuntu 下安装splint
- oracle学习之路(一)
- 义隆金融:利多出尽抑制美元上涨 金价迎短期反弹
- ShellExecute函数介绍
- Eclipse中CVS界面功能描述
- Spring配置文件总结
- hdu 2577 How to Type 如何保证英文输入状态下,可以按最小次数来完成输入
- 对线性回归,logistic回归和一般回归的认识