Java 按字节截取带有汉字的字符串的一种做法
来源:互联网 发布:如何投诉淘宝卖家售假 编辑:程序博客网 时间:2024/04/28 01:45
Java 按字节截取带有汉字的字符串的解法,网上有不少讨论。这里我也给出一种我自己的处理,基本原理还是统计要截取的字节数中是表示汉字的字节数是否是偶数个,即是否刚好包括了完整的汉字。
/**
* 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
* 按上述规则,输入“我ABC汉DEF 1”,应返回空字符串,而不是“我”。
*/
public class CutMultibyte {
public static String cutMultibyte(String splitStr, int extract) {
byte[] bytes = splitStr.getBytes();
//截取字节数不小于原始字节数时直接返回原字符串。注意字节数一定要用 bytes.length,用字符串的 length() 方法返回的是字符数!
if (extract >= bytes.length) {
return splitStr;
}
else {
int result = 0;
int cutLength = 0;
//统计出在要截取的字节中有几个字节是负数
for (int i = 0; i < extract; i++) {
if (bytes[i] < 0) {
cutLength++;
}
}
//若负数字节数是偶数,即要截取的字节数中遇到刚好是若干完整的汉字,则截取字节数不变;否则负数字节数是奇数,表示遇到的不是完整汉字,截取字节数减 1。
if (cutLength % 2 == 0) {
result = extract;
}
else {
result = extract - 1;
}
String substrx = new String(bytes, 0, result);
return substrx;
}
}
public static void main(String args[]) {
String str = args[0];
int num = Integer.valueOf(args[1]);
str = cutMultibyte(str, num);
System.out.println(str);
}
}
- Java 按字节截取带有汉字的字符串的一种做法
- java按字节截取带有汉字的字符串的解法
- java按字节截取带有汉字的字符串的解法
- java按字节截取带有汉字的字符串的解法
- 关于java按字节截取带有汉字的字符串的解法
- 关于java按字节截取带有汉字的字符串的解法
- 一道java笔试题,如何截取带有汉字的字符串
- 截取带有中文字符串的字节索引
- 按字节截取带有中文字符的字符串
- 按字节截取含有中文汉字的字符串
- 按字节截取含有中文汉字的字符串
- 按字节截取含有中文汉字的字符串
- 按字节截取含有中文汉字的字符串
- C语言,截取带有汉字、字母的字符串函数
- JAVA截取带有HTML的字符串[转]
- 字符串截取(按指定的字节数)汉字不可以截取半个
- java 截取一个包含汉字的字符串的前n个字节的算法
- 字符串的按字节截取
- jboss classloader
- 触发器
- 2410上触摸屏校准程序设计
- 完美解决mysql下utf-8的乱码问题
- 如何设置UltraEdit的语法颜色及相关问题
- Java 按字节截取带有汉字的字符串的一种做法
- PL/SQL块结构
- SQL 获取列名 利用系统表
- 很久没有上CSDN了,上来安个BLOG!
- Linux下关于NFS的配置步骤
- 存储过程
- Jquery-1.3.2在IE8中用toggle控制table 的 tr td显示和隐藏问题
- ADF DI开发环境配置
- 医用显示器在数字影像系统中的作用和选配