import java.io.UnsupportedEncodingException;
/**
* 字符串工具类
* @author happyqing
* @since 2013.11.6
*/
public class StringUtil {
/**
* 返回中英文字符串的字节长度
*
* @param str
* @return
*/
public static int getLength(String str) {
try {
return str.getBytes("UTF-8").length; // 一个中文占3个字节。
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
/**
* 返回中英文字符串的字节长度
*
* @param str
* @return
*/
public static int getStrLength(String str) {
if (str == null || str.length() == 0) {
return 0;
}
int len = 0;
for (int i=0; i<str.length(); i++ ) {
//UTF-8编码格式中文占三个字节,GBK编码格式 中文占两个字节 ;
len += (str.charAt(i)>255 ? 3 : 1);
}
return len;
}
/**
* 按字节截取字符串
* @param str
* @param bytes
* @return
*/
public static String subStringByBytes(String str, int bytes) {
if (str == null || str.length() == 0) {
return str;
}
int len = 0;
for (int i=0; i<str.length(); i++ ) {
//GBK 编码格式 中文占两个字节 UTF-8 编码格式中文占三个字节;
len += (str.charAt(i)>255 ? 3 : 1);
if(len>bytes){
return str.substring(0,i);
}
}
return str;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.out.println("中文a".getBytes("UTF-8").length); // 7
System.out.println(StringUtil.getStrLength("中文a")); // 7
System.out.println("中文a".length()); // 3
System.out.println(subStringByBytes("中文a",4)); //中
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
JS按字节计算字符串长度,按字节截取字符串
http://happyqing.iteye.com/blog/1979816
相关推荐
这就意味着当我们按照字节长度截取字符串时,可能会将一个完整的汉字分割成两部分,从而导致乱码。 Java中的`String`类提供了多种截取字符串的方法,如`substring()`、`subSequence()`等,但它们都是基于字符(char...
在 `main` 方法中,我们创建了一个 `SplitString` 对象,并调用其 `SplitIt` 方法来截取字符串。 总结 本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该...
在Java编程语言中,处理包含汉字的字符串时,由于汉字在不同编码格式下占用的字节数不同,按字节截取字符串会面临特殊挑战。本文将深入探讨如何正确地按字节截取带有汉字的字符串,以确保不出现半字符或者乱码的情况...
2. **计算截取次数**:根据字符串长度和每次截取的字节数,计算出需要截取的次数。如果字符串长度不能被每次截取的字节数整除,则最后一次截取的长度会少于指定的字节数。 3. **实现截取逻辑**:遍历字符串,按照...
总结来说,“按byte截取字符串”是一项实用的技术,涉及到字符串编码、字节数组操作以及对Java语言特性的深入理解。在实际开发中,掌握这项技能对于处理与字节流相关的任务至关重要,尤其是在处理网络数据传输、文件...
因此,如果我们想要根据字节数截取字符串,我们不能简单地用`substring()`,而是需要先计算字符串的字节数,然后根据这个字节数来定位截取的位置。 下面是一种可能的实现方式: 1. 使用`getBytes()`方法转换字符串...
总的来说,Java中精确截取字符串涉及到字符编码、字节长度计算等多个方面。对于不同的场景,需要选择合适的方法,确保截取后的字符串既能满足长度要求,又能正确显示其中的文本内容。在实际开发中,可以根据项目需求...
一种常用的方法是使用getBytes方法将字符串转换为byte数组,然后根据字节的长度来截取字符串。这种方法可以保证汉字不被截半个,但是需要指定编码方式,否则可能会出现错误。 在上面的代码中,定义了一个substring...
这个压缩包内包含的可能是Java代码示例(如csdn-demo),用于批量处理字符串,统计其中的中英文标点符号的数量,并根据指定的字符编码(GBK或UTF)来计算字符串的总长度。如果字符串的总长度超过预设的最大长度,...
因此,在计算字符串长度时,必须考虑到实际的编码方式。 2. **字符与字节的区别**:在讨论字符串长度时,需要区分字符数和字节数。一个字符可能由多个字节组成,尤其是在处理非英文字符时。因此,简单地通过字符串...
本例通过Java代码实现了一个截取字符串的函数,该函数能够根据指定的字节数截取字符串,并保证在截取过程中不会将中文字符截断,也就是说,如果一个中文字符的字节长度超过了一个字节,那么在截取时会保持该字符的...
因此,在这篇“Java判断中文字符串长度的简单实例”中,作者提供了几种计算字符串长度的方法,尤其强调了如何正确计算含有中文字符的字符串长度。 首先,Java中字符串的长度使用`.length()`方法来获取,但这个方法...
接下来,我们计算字符串的字节数,并检查输入的截取字节数是否超过这个长度。 关键在于判断截取后是否会出现汉字被截半的情况。我们检查第`len`个字节,如果其值小于0,意味着它是一个多字节汉字的后半部分,此时...
本篇主要介绍了一种根据指定字节数来截取字符串的方法,并考虑到了不同的编码方式对字符串长度的影响。此外,还涉及了一些关于如何使用 jQuery 操作 select 元素的示例代码。 #### 二、关键概念 - **字符串截取**:...
这段代码虽然简单,但很好地解决了中文字符串按字节截取的问题。需要注意的是,这种方法依赖于字符串是用UTF-8编码的假设。在实际应用中,如果字符串的编码方式不确定,可能需要进行额外的编码检查和转换。 此外,...
- 判断字符串长度是否超过目标长度。如果未超过,则直接返回原字符串。 - 如果超过了目标长度,则进一步计算实际字符宽度,并据此确定截取的位置。 - 在循环中,逐个字符判断其是全角还是半角字符,并相应累加宽度值...
* Java字符串计算操作:包括使用length()方法和getBytes()方法来计算字符串的长度和字节大小等。 * Java字符串处理技巧:包括使用replaceAll()方法和replace()方法来处理字符串。 结语 本文详细介绍了Java String...
值得注意的是,Java中的字符串长度是基于Unicode编码计算的,所以每个中文字符会被视为一个字符,即使它可能由多个字节表示。 除了基本的字符串长度计算,我们还可以探讨一些与字符串处理相关的其他知识点: 1. **...
例如,使用`str[:n]`可以截取字符串的前n个字符;在格式化输出时,可能会根据长度进行对齐或填充。 5. **性能考虑** 获取字符串长度通常是快速的操作,因为它通常在内存中直接访问。但是,对于非常大的字符串,...
1. `CHAR_LENGTH(str)`:返回字符串`str`的长度,对于多字节字符,它会正确计算实际字符数。 2. `LOCATE(substr, str)` / `POSITION(substr IN str)`:返回子串`substr`在字符串`str`中首次出现的位置。 3. `...