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 字符串截取函数 ...本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该函数使用 `substring` 方法来实现字符串截取,并且可以应用于各种字符串处理场景。
面试中可能会遇到类似的问题,要求编写一个函数来截取字符串,确保汉字不被截半。以下是一个简单的示例实现: ```java public class SplitString { private String str; private int byteNum; public ...
总的来说,Java中精确截取字符串涉及到字符编码、字节长度计算等多个方面。对于不同的场景,需要选择合适的方法,确保截取后的字符串既能满足长度要求,又能正确显示其中的文本内容。在实际开发中,可以根据项目需求...
本文将详细解析提供的Java代码,了解如何实现按字节截取字符串,确保不出现半个汉字。 首先,给出的代码定义了一个名为`StringTool`的工具类,其中包含一个静态方法`getSubString`,该方法接受一个字符串`str`和一...
因此,如果直接按照字节数来截取字符串,可能会导致截取结果包含半个汉字,这显然是不希望看到的。 ### 实现细节分析 #### 1. 理解UTF-8编码 UTF-8是一种可变长度的Unicode编码格式,它支持所有Unicode字符,同时...
### Java截取字符串(判断汉字) #### 背景与目的 在开发Web应用程序时,尤其是在使用Java Server Pages (JSP) 进行开发时,经常需要处理包含中文字符的字符串。由于中文字符通常占用两个字节,而英文字符只占用一...
为了实现这一需求,Java提供了String类的getBytes()方法,用于将字符串转换成字节数组,同样也提供了substring()方法用于截取字符串。但在本例中,使用substring()方法无法直接达到目标,因为这种方法无法直接对字节...
7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取... 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
Java截取中英文混合字符串的方法是指在Java语言中截取混合了中英文的字符串,并且保证汉字不被截半个的方法。这种方法在实际开发中非常有用,特别是在处理中文字符串时。 在Java中,字符串的截取可以使用substring...
Java面试题中提到的问题是,当截取字符串时,要保证汉字不被分割。这是因为substring方法在处理多字节字符(如汉字)时,可能会在字符中间截断,导致乱码。为了解决这个问题,我们需要编写一个定制的截取函数,这个...
本题中,我们需要编写一个函数,该函数能够根据指定的字节数截取字符串,并确保不会出现汉字被截半的情况。这是一个涉及字符编码和边界条件处理的问题。 首先,我们来理解题目中的要求: 1. 函数接收两个参数,一个...
- 对于中文字符的处理,应特别注意边界情况的处理,避免出现半个汉字的情况。 - 使用 jQuery 操作 DOM 元素时,需要确保 jQuery 已经正确加载。 综上所述,字符串截取是一个在日常开发中非常实用的功能,尤其在处理...
本例通过Java代码实现了一个截取字符串的函数,该函数能够根据指定的字节数截取字符串,并保证在截取过程中不会将中文字符截断,也就是说,如果一个中文字符的字节长度超过了一个字节,那么在截取时会保持该字符的...
Java 实现中英文混合字符截取方法 Java 实现中英文混合字符截取方法是指在 Java 编程...通过本文的介绍,读者可以了解 Java 实现中英文混合字符截取方法的思路和实现细节,从而更好地解决Java截取字符串时遇到的问题。
7、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节... 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
如果按照字符数量来截取,可能会导致截取后的字符串不完整或出现乱码。 ### 二、技术要点 #### 1. 全角与半角字符识别 全角字符通常指中文字符、日文假名等亚洲语言文字,每个字符占用两个字节;半角字符则指英文...
核心思路:输入一个字符串和字节数,输出按字节数截取字符串, 其中要保证汉字不能被截半个字节,设计思路就是判断汉字占几个字节,通过string.valueof.getBytes()方法获取字符的字节数,之后遍历判断不要超过指定的...
在上面的代码中,我们使用了一个自定义的 `subString()` 方法来截取字符串,保证汉字不被截半个。 知识点 4:Java 中的 Unicode 字符 在 Java 中,我们可以使用 Unicode 字符来表示汉字。在上面的代码中,我们使用...
但是要保证汉字不被截半个。这道题考察了Java中的字符串处理和 Unicode 知识。 知识点8: 排序算法 排序问题需要列举出各种排序算法,并用Java实现一个快速排序。这道题考察了Java中的排序算法和数据结构的知识。 ...