java 半个汉字,Java截取字符串军令状汉字不被截取半个

本文介绍了一种在Java和JavaScript中截取字符串的方法,保证在截取过程中汉字不会被分割。提供了Java的`split`和`truncate`函数实现,以及JavaScript的`cutstr`函数,确保汉字在截取时不被截断。这些函数考虑了汉字占两个字节的特性,从而避免了中文字符被截取半个的问题。
摘要由CSDN通过智能技术生成

Java截取字符串保证汉字不被截取半个

Java截取字符串保证汉字不被截取半个

public class SplitString {

public static void main(String[] args) {

String str = "我ABC汉DEF";

//str = split(str, 6);

str = truncate(str,7);

System.out.println(str);

}

public static String split(String arg0, int arg1) {

char[] carr = arg0.toCharArray();

int il = carr.length;

for (int i = 0; i < arg1 && i < il; i++) {

if (carr[i] > 0xFF) {

arg1--;

}

}

int x = arg1 > 0 ? arg1 : 0;

x = arg1 < il ? arg1 : il;

return arg0.substring(0, x);

}

public static String truncate(String str, int byteLength) {

if (str == null) {

return null;

}

if (str.length() == 0) {

return str;

}

if (byteLength < 0) {

throw new IllegalArgumentException("Parameter byteLength must be great than 0");

}

char[] chs = str.toCharArray();

int i = 0;

int len = 0;

while ((len < byteLength) && (i < chs.length)) {

len = (chs[i++] > 0xff) ? (len + 2) : (len + 1);

}

if (len > byteLength) {

i--;

}

return new String(chs, 0, i);

}

}

Js截取字符串保证汉字不被截取半个:

/**

* 截取字符串:一个汉字相当于两个英文或数字字符,汉字不被截取半个

* @param str:需要截取的字符串

* @param len:截取的长度(一个汉字占两个长度)

*/

function cutstr(str,len){

var str_length = 0;

var str_len = 0;

str_cut = new String();

str_len = str.length;

for(var i = 0;i

a = str.charAt(i);

str_length++;

if(escape(a).length > 4){//中文字符的长度经编码之后大于4

str_length++;

}

str_cut = str_cut.concat(a);

if(str_length>=len){

str_cut = str_cut.concat("...");

return str_cut;

}

}

//如果给定字符串小于指定长度,则返回源字符串;

if(str_length

return  str;

}

}

转自: http://www.blackswansoft.com/songhaikang/article/20110517220909230.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值