`
happyqing
  • 浏览: 3206220 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 按字节计算字符串的长度,按字节截取字符串

    博客分类:
  • java
阅读更多

 

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如何按字节截取字符串

    在进行Java编程时,我们经常会遇到需要按字节截取字符串的情况,尤其是在数据传输、网络通信以及对数据进行存储处理的时候。由于计算机内部存储和处理的都是二进制数据,对于非英文字符,在不同的编码(如UTF-8、GBK...

    关于java按字节截取带有汉字的字符串的解法

    这就意味着当我们按照字节长度截取字符串时,可能会将一个完整的汉字分割成两部分,从而导致乱码。 Java中的`String`类提供了多种截取字符串的方法,如`substring()`、`subSequence()`等,但它们都是基于字符(char...

    java编写一个截取字符串的函数,输入为一个字符串和字节数.docx

    在 `main` 方法中,我们创建了一个 `SplitString` 对象,并调用其 `SplitIt` 方法来截取字符串。 总结 本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该...

    java按字节截取带有汉字的字符串的解法(推荐)

    在Java编程语言中,处理包含汉字的字符串时,由于汉字在不同编码格式下占用的字节数不同,按字节截取字符串会面临特殊挑战。本文将深入探讨如何正确地按字节截取带有汉字的字符串,以确保不出现半字符或者乱码的情况...

    java中截取带汉字的字符串

    2. **计算截取次数**:根据字符串长度和每次截取的字节数,计算出需要截取的次数。如果字符串长度不能被每次截取的字节数整除,则最后一次截取的长度会少于指定的字节数。 3. **实现截取逻辑**:遍历字符串,按照...

    按byte截取字符串

    总结来说,“按byte截取字符串”是一项实用的技术,涉及到字符串编码、字节数组操作以及对Java语言特性的深入理解。在实际开发中,掌握这项技能对于处理与字节流相关的任务至关重要,尤其是在处理网络数据传输、文件...

    根据字节数截取字符串

    因此,如果我们想要根据字节数截取字符串,我们不能简单地用`substring()`,而是需要先计算字符串的字节数,然后根据这个字节数来定位截取的位置。 下面是一种可能的实现方式: 1. 使用`getBytes()`方法转换字符串...

    Java精确截取字符串.pdf

    总的来说,Java中精确截取字符串涉及到字符编码、字节长度计算等多个方面。对于不同的场景,需要选择合适的方法,确保截取后的字符串既能满足长度要求,又能正确显示其中的文本内容。在实际开发中,可以根据项目需求...

    Java截取中英文混合字符串的方法

    需要注意的是,在截取字符串时,我们必须考虑到编码方式对汉字占用字节长度的影响。这是因为,如果错误地估计了字节长度,就有可能导致汉字被截断,从而引发错误。例如,在某些编码方式下,一个汉字可能由三个字节...

    统计字符串中英文标点数量并截取.zip

    这个压缩包内包含的可能是Java代码示例(如csdn-demo),用于批量处理字符串,统计其中的中英文标点符号的数量,并根据指定的字符编码(GBK或UTF)来计算字符串的总长度。如果字符串的总长度超过预设的最大长度,...

    java中英文字符串截取

    因此,在计算字符串长度时,必须考虑到实际的编码方式。 2. **字符与字节的区别**:在讨论字符串长度时,需要区分字符数和字节数。一个字符可能由多个字节组成,尤其是在处理非英文字符时。因此,简单地通过字符串...

    java 实现截取字符串并按字节分别输出实例代码

    本例通过Java代码实现了一个截取字符串的函数,该函数能够根据指定的字节数截取字符串,并保证在截取过程中不会将中文字符截断,也就是说,如果一个中文字符的字节长度超过了一个字节,那么在截取时会保持该字符的...

    java判断中文字符串长度的简单实例

    因此,在这篇“Java判断中文字符串长度的简单实例”中,作者提供了几种计算字符串长度的方法,尤其强调了如何正确计算含有中文字符的字符串长度。 首先,Java中字符串的长度使用`.length()`方法来获取,但这个方法...

    java 一个截取字符串的函数

    接下来,我们计算字符串的字节数,并检查输入的截取字节数是否超过这个长度。 关键在于判断截取后是否会出现汉字被截半的情况。我们检查第`len`个字节,如果其值小于0,意味着它是一个多字节汉字的后半部分,此时...

    字符串截取

    本篇主要介绍了一种根据指定字节数来截取字符串的方法,并考虑到了不同的编码方式对字符串长度的影响。此外,还涉及了一些关于如何使用 jQuery 操作 select 元素的示例代码。 #### 二、关键概念 - **字符串截取**:...

    从字符串中截取等长字节的Java代码

    这段代码虽然简单,但很好地解决了中文字符串按字节截取的问题。需要注意的是,这种方法依赖于字符串是用UTF-8编码的假设。在实际应用中,如果字符串的编码方式不确定,可能需要进行额外的编码检查和转换。 此外,...

    前后台实现精确截取指定长度字符串(考虑全角半角)

    - 判断字符串长度是否超过目标长度。如果未超过,则直接返回原字符串。 - 如果超过了目标长度,则进一步计算实际字符宽度,并据此确定截取的位置。 - 在循环中,逐个字符判断其是全角还是半角字符,并相应累加宽度值...

    Java String方法获取字符出现次数及字符最大相同部分示例

    * Java字符串计算操作:包括使用length()方法和getBytes()方法来计算字符串的长度和字节大小等。 * Java字符串处理技巧:包括使用replaceAll()方法和replace()方法来处理字符串。 结语 本文详细介绍了Java String...

    java 我究竟有多长

    值得注意的是,Java中的字符串长度是基于Unicode编码计算的,所以每个中文字符会被视为一个字符,即使它可能由多个字节表示。 除了基本的字符串长度计算,我们还可以探讨一些与字符串处理相关的其他知识点: 1. **...

    mysql 截取指定的两个字符串之间的内容

    1. `CHAR_LENGTH(str)`:返回字符串`str`的长度,对于多字节字符,它会正确计算实际字符数。 2. `LOCATE(substr, str)` / `POSITION(substr IN str)`:返回子串`substr`在字符串`str`中首次出现的位置。 3. `...

Global site tag (gtag.js) - Google Analytics