public class Tools {
public Tools() {
}
/**
* 字符串按字节截取
* @param str 原字符
* @param len 截取长度
* @return String
* @author kinglong
* @since 2006.07.20
*/
public static String splitString(String str, int len) {
return splitString(str, len, "...");
}
/**
* 字符串按字节截取
* @param str 原字符
* @param len 截取长度
* @param elide 省略符
* @return String
* @author kinglong
* @since 2006.07.20
*/
public static String splitString(String str,int len,String elide) {
if (str == null) {
return "";
}
byte[] strByte = str.getBytes();
int strLen = strByte.length;
int elideLen = (elide.trim().length() == 0) ? 0 : elide.getBytes().length;
if (len >= strLen || len < 1) {
return str;
}
if (len - elideLen > 0) {
len = len - elideLen;
}
int count = 0;
for (int i = 0; i < len; i++) {
int value = (int) strByte[i];
if (value < 0) {
count++;
}
}
if (count % 2 != 0) {
len = (len == 1) ? len + 1 : len - 1;
}
return new String(strByte, 0, len) + elide.trim();
}
}
分享到:
相关推荐
Java 实现中英文混合字符截取方法是一个复杂的问题,需要考虑 Unicode 编码的特点、避免汉字被截半个和正确处理中英文混合字符串。通过本文的介绍,读者可以了解 Java 实现中英文混合字符截取方法的思路和实现细节,...
由于Unicode编码的存在,中文字符通常占据两个字节,而英文字符则占据一个字节,这就导致了在不正确处理的情况下可能会截断字符,从而出现乱码问题。本篇文章将深入探讨如何在Delphi中实现中文和英文混合字符串的...
总结来说,Java截取中英文混合字符串的方法需要综合考虑编码方式和汉字占用字节长度的问题,并且需要采取适当的技术手段来确保汉字不会被截断。通过自定义截取方法,并在截取过程中正确地使用编码方式,我们可以有效...
这就意味着当我们按照字节长度截取字符串时,可能会将一个完整的汉字分割成两部分,从而导致乱码。 Java中的`String`类提供了多种截取字符串的方法,如`substring()`、`subSequence()`等,但它们都是基于字符(char...
本文介绍了一种用于高效截取中英文混合字符串的方法,并详细解释了其背后的实现原理。通过使用GB2312编码和特定的字节处理逻辑,该方法能够有效地处理大量数据并在短时间内完成任务。对于那些需要频繁处理此类字符串...
需要注意的是,在UTF-8编码中,一个英文字符占1个字节,而一个中文字符占3个字节。因此,4个字节可以同时容纳一个中文字符或者四个英文字符。 2. **计算截取次数**:根据字符串长度和每次截取的字节数,计算出需要...
根据给定文件的信息,本文将深入探讨如何在C#中实现一种高效的按字节截取字符串的方法,尤其针对包含单字节与双字节混合字符的情况。这种方法特别适用于处理中文等双字节字符与英文等单字节字符混合的情况。 ### 一...
本文将深入探讨一种按字节截取字符串的方法,并通过分析一个具体的Java代码示例来解释其实现原理。 #### 核心概念:Unicode与字节 在讨论字符串按字节截取之前,我们首先需要理解几个基础概念。现代计算机系统中,...
- **输入参数**:该方法接收两个参数,`text`是待截取的字符串,`length`是目标截取的字节数长度。 - **异常处理**:使用`getBytes("GBK")`方法时,如果系统不支持GBK编码,会抛出`UnsupportedEncodingException`...
在C#编程语言中,经常需要处理字符串操作,其中一个常见的需求就是根据特定的长度来截取字符串。本文将详细介绍如何使用C#实现字符串的固定长度截取,并深入探讨背后的原理和技术细节。 #### 方法一:使用Substring...
截取含有中英文的字符串,按字节进行截取,当出现汉字时不能截取半个汉字要把汉字补全。
题目中的问题聚焦于如何正确地截取一个中英混合的字符串,确保在截取过程中不会将汉字字符截断。这个问题涉及到字符编码、字符串处理以及对Unicode的理解。下面将详细解释相关知识点。 首先,我们要理解在C++中处理...
### C# 截取指定长度的中英文混合字符串方法解析 在C#中处理文本时,经常需要对字符串进行截取操作。对于包含中文字符的字符串来说,由于一个中文字符通常占据两个字节的位置(在某些编码下),因此在进行长度判断...
实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,String类是按字符截取 的,例如"中国abc".substring(1,3),将返回...要求按字节截取,一个英文字符当一个字节,一个中文字符当两个字节.
为了实现这一需求,Java提供了String类的getBytes()方法,用于将字符串转换成字节数组,同样也提供了substring()方法用于截取字符串。但在本例中,使用substring()方法无法直接达到目标,因为这种方法无法直接对字节...
为了正确地截取中英文混合的字符串,我们需要一种能正确处理多字节字符的方法。 在提供的代码实例中,展示了如何在C#中实现这样一个功能。这个方法的核心在于通过遍历字符数组并计算实际字符长度(而非字节长度)来...
总之,按字节截取字符串是Java编程中的一项基础且重要的技术,对于处理文本数据的传输和存储尤为重要。在使用这项技术时,我们应当特别注意字符编码的选择,以确保数据的正确性和完整性。希望通过本文的介绍,你能...
在Java编程语言中,处理包含汉字的字符串时,由于汉字在不同编码格式下占用的字节数不同,按字节截取字符串会面临特殊挑战。本文将深入探讨如何正确地按字节截取带有汉字的字符串,以确保不出现半字符或者乱码的情况...
这个压缩包内包含的可能是Java代码示例(如csdn-demo),用于批量处理字符串,统计其中的中英文标点符号的数量,并根据指定的字符编码(GBK或UTF)来计算字符串的总长度。如果字符串的总长度超过预设的最大长度,...
本例通过Java代码实现了一个截取字符串的函数,该函数能够根据指定的字节数截取字符串,并保证在截取过程中不会将中文字符截断,也就是说,如果一个中文字符的字节长度超过了一个字节,那么在截取时会保持该字符的...