Java按字节数截取字符串
来源:互联网 发布:小米usb网络共享怎么用 编辑:程序博客网 时间:2024/06/01 22:45
1、截取字符串,若是遇到不完整的中文,则舍弃掉那部分中文信息
碰到可能会截取汉字的情况,当然是要不能截取出乱码来,就是不能对整个汉字截取一半。如"我ABC汉字d"这个字符串,截取5个字节的时候,应该是"我ABC",而截取8个字节的时候,应该是"我ABC汉",而不应该是"我ABC汉?",其中"?"为半个汉字,可理解为向前截取
package com.lxh.ser.test;import java.io.UnsupportedEncodingException;public class SubStrTest {private static final String DEFAULT_ENCODING = "GBK";public static void main(String[] args) throws UnsupportedEncodingException {String str = "我ABC汉字d";for (int i = 0; i < str.getBytes(DEFAULT_ENCODING).length; i++) {System.out.println("i: " + i + " " + subStr(str, i));}}/** * @param str 需要截取的字符串 * @param subSLength 需要截取的字节数 * @return 截取完成的字符串 * @throws UnsupportedEncodingException */public static String subStr(String str, int subStrLength) throws UnsupportedEncodingException {if (null == str) {return "";}// 截取字节数int tempSubLength = subStrLength;// 截取的子串String subStr = str.substring(0, str.length() < subStrLength ? str.length() : subStrLength);// 截取子串的字节长度int subStrByetsL = subStr.getBytes(DEFAULT_ENCODING).length;// 比较截取后的字符串字节数大于需要截取的自己数,说明截取的字符串中包含有汉字并且截取后的字节数大于需要的字节数while (subStrByetsL > tempSubLength) {int subSLengthTemp = --subStrLength;// 再少截取一个字符subStr = str.substring(0, subSLengthTemp > str.length() ? str.length() : subSLengthTemp);subStrByetsL = subStr.getBytes(DEFAULT_ENCODING).length;}return subStr;}}
0 0
- Java字符串按字节数截取长度
- Java 按字节数截取字符串
- Java按字节数截取字符串
- 按字节数截取字符串
- JAVA按指定的字节数截取字符串
- java根据字节数截取字符串
- Java根据字节数截取完整字符串
- Java字符串 字节数计算 截取长度
- 按字节截取字符串-Java
- java按字节截取字符串
- java按字节截取字符串
- Java 按字节截取字符串
- C# 按字节数截取string字符串
- 23.按字节数截取字符串
- Java: 按字节的开始位置来截取指定字节数长度的字符串
- javascript_按字节截取、计算中英文混合字符串字节数
- 根据字节数截取字符串...
- 根据字节数截取字符串
- win7 64位 旗舰版使用DOSBox搭建汇编开发环境
- IBM Installation Manager 目录修改
- Rational Software Architect 9.0 破解文件使用方法
- 未分配磁盘怎样创建扩展分区
- ubuntu3.11普通用户和root的密码都忘了
- Java按字节数截取字符串
- 关于C中字符串的输入和输出使用的函数不同所造成的影响
- c语言指针,指向指针的指针
- day02
- Android Handler机制
- ios开发之认知ios工程结构
- C++构造与析构(13) - 内建类型的默认构造函数
- Android性能优化案例学习-第二部
- C++构造与析构(14) - 编译器何时创建默认构造函数和拷贝构造函数