`
msi110
  • 浏览: 31623 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

中英文字符串的截取

 
阅读更多
import java.io.UnsupportedEncodingException;
/**
 * 题目: 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的
 * 字符串。 但是要保证汉字不被截半个,如"我ABC",4,应该截为"我AB",输入"我ABC
 * 汉DEF",6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
 */
public class StringTest {
	static void splitString(String str, int length)
			throws UnsupportedEncodingException {
		if(length<=0){
		}
		else{
			// 将字符串按照"gbk"编码形式解码为字节序列,并保存在数组中
			// 当汉字采用GBK编码时占两个字节,而采用UTF-8编码时占3个字节,并且都为负整数
			byte[] bt = str.getBytes("gbk");
			if (length <= bt.length) {
				//判断在要截取长度的数组中有多少个负数
				int count = 0;
				for (int i = 0; i < length; i++) {
					if(bt[i]<0)
						count++;
				}
				if(count%2==0){
					//如果刚好被2整除,说明截取不会出现乱码
					System.out.println(new String(bt, 0,length, "gbk"));
				}else{
					//不能整除则会出现乱码,则需要把最后一个字节去掉
					System.out.println(new String(bt, 0,--length, "gbk"));
				}
			}
		}

	}

	public static void main(String[] args) {
		try {
			StringTest.splitString("我ABC汉他DEF", 6);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}
}

分享到:
评论

相关推荐

    高效中英文字符串截取方法

    ### 高效中英文字符串截取方法 #### 知识点概述 本文将详细介绍一种用于高效截取中英文混合字符串的方法。该方法适用于处理大量数据(例如10万条记录),能够在极短的时间内(例如1秒)完成所需的操作。这种方法...

    java中英文字符串截取

    ### Java中英文字符串截取的关键点 1. **字符编码的影响**:中文字符在不同的编码方式下占用的字节数不同。例如,在UTF-8编码中,中文字符通常占用3个字节,而在GBK编码中,则可能占用2或4个字节。因此,在计算字符...

    delphi 实现截取字符串中中文+英文混合截取

    在Delphi编程环境中,处理中文和英文混合的字符串截取是一项常见的任务,特别是在涉及到文本处理、数据解析或者用户界面展示时。由于Unicode编码的存在,中文字符通常占据两个字节,而英文字符则占据一个字节,这就...

    截取中英文字符串函数

    可以截取中英文字符串,也可以含有字符,里面有好几个方法 有按字符个数截取 有按字节数来截取不会存在乱码

    C++中英混合字符串截取

    题目中的问题聚焦于如何正确地截取一个中英混合的字符串,确保在截取过程中不会将汉字字符截断。这个问题涉及到字符编码、字符串处理以及对Unicode的理解。下面将详细解释相关知识点。 首先,我们要理解在C++中处理...

    ASP中英文混合字符串的截取

    在处理这类问题时,普通的字符串截取函数,如`Left()`,无法很好地处理中文字符,因为中文字符在计算长度时通常被视为两个英文字符的宽度。本文将详细介绍如何在ASP中正确地截取中英文混合的字符串,并提供三个相关...

    C#常用字符串截取函数

    C#开发中经常用到一些字符串截取的函数,文档中含有大多数的函数

    [待删除]字符串截取 - 中英文

    根据给定文件的信息,我们将深入探讨Java中字符串截取的原理、方法以及在中英文操作系统下的特殊处理。 ### Java字符串截取 #### 原理与实现 在Java中,字符串本质上是一个不可变的字符序列,由`char`类型的数组...

    C#字符串截取

    根据给定的文件信息,我们可以总结出以下关于C#中的字符串截取的相关知识点: ### C#字符串截取方法概述 在C#编程语言中,字符串处理是非常常见的需求之一,尤其是在Web开发、桌面应用开发以及数据处理等领域。...

    中英文字符串按字节截取

    截取含有中英文的字符串,按字节进行截取,当出现汉字时不能截取半个汉字要把汉字补全。

    java中截取带汉字的字符串

    ### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取...通过以上方法,我们可以在Java中有效地处理包含中文字符的字符串截取问题,避免出现乱码等情况。

    C#字符串截取固定长度的方法

    ### C#字符串截取固定长度的方法 在C#编程语言中,经常需要处理字符串操作,其中一个常见的需求就是根据特定的长度来截取字符串。本文将详细介绍如何使用C#实现字符串的固定长度截取,并深入探讨背后的原理和技术...

    C#实现中英文混合字符串截取的方法

    本文实例讲述了C#实现中英文混合字符串截取的方法,是C#字符串操作中非常常用的一个方法。分享给大家供大家参考之用。具体方法如下: 具体功能代码如下: /// /// 截取中英文混合字符串 /// /// 字符文本 /// ...

    C#中按字符串截取长字符串实例

    本文实例讲述了C#中按字符串截取长字符串的方法。分享给大家供大家参考。具体方法如下: 一般来说使用string自带的split就可以,但是split只能按char类型截取,不是很方便。 按字符串截取,使用的是正则表达式,简单...

    PHP中如何截取中文字符串

    在PHP中处理中文字符串截取是一项常见的任务,尤其是在网页开发中。中文字符串通常包含UTF-8编码的字符,这与ASCII编码的英文字符串处理方式有所不同。以下将详细讲解如何在PHP中正确截取中文字符串。 首先,我们...

    PHP 不区分中英文截取utf8字符串

    在进行字符串截取时,如果不考虑编码特性,可能会导致截取结果错误。这篇博客“PHP 不区分中英文截取utf8字符串”提供了一个解决方案,使得在UTF-8环境下可以正确地截取包含中文和英文的字符串,而不影响其完整性。 ...

    JavaScript截取中文字符串

    本文将详细介绍一个专门用于处理中文字符串截取的JavaScript函数,该函数能够根据字符的实际编码长度来精确控制截取的长度。 #### 二、关键概念解析 ##### 2.1 字符串截取 字符串截取是指从一个较长的字符串中...

    java 字符串截取类

    java 字符串截取类,兼容中英文及日韩文字格式

    中文字符串截取(支持各种编码格式)底层实现源码

    本文将深入探讨中文字符串截取的底层实现,以及如何在支持多种编码格式的情况下进行操作。 首先,我们需要了解字符串在计算机中的存储方式。在ASCII编码中,一个字符由一个字节表示,而对于中文字符,通常使用...

Global site tag (gtag.js) - Google Analytics