Java截取字符串军令状汉字不被截取半个
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<str_len;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<len){
return str;
}
}
转自: http://www.blackswansoft.com/songhaikang/article/20110517220909230.html
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<str_len;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<len){
return str;
}
}
转自: http://www.blackswansoft.com/songhaikang/article/20110517220909230.html