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中英文字符串截取的关键点 1. **字符编码的影响**:中文字符在不同的编码方式下占用的字节数不同。例如,在UTF-8编码中,中文字符通常占用3个字节,而在GBK编码中,则可能占用2或4个字节。因此,在计算字符...
在Delphi编程环境中,处理中文和英文混合的字符串截取是一项常见的任务,特别是在涉及到文本处理、数据解析或者用户界面展示时。由于Unicode编码的存在,中文字符通常占据两个字节,而英文字符则占据一个字节,这就...
可以截取中英文字符串,也可以含有字符,里面有好几个方法 有按字符个数截取 有按字节数来截取不会存在乱码
题目中的问题聚焦于如何正确地截取一个中英混合的字符串,确保在截取过程中不会将汉字字符截断。这个问题涉及到字符编码、字符串处理以及对Unicode的理解。下面将详细解释相关知识点。 首先,我们要理解在C++中处理...
在处理这类问题时,普通的字符串截取函数,如`Left()`,无法很好地处理中文字符,因为中文字符在计算长度时通常被视为两个英文字符的宽度。本文将详细介绍如何在ASP中正确地截取中英文混合的字符串,并提供三个相关...
C#开发中经常用到一些字符串截取的函数,文档中含有大多数的函数
根据给定文件的信息,我们将深入探讨Java中字符串截取的原理、方法以及在中英文操作系统下的特殊处理。 ### Java字符串截取 #### 原理与实现 在Java中,字符串本质上是一个不可变的字符序列,由`char`类型的数组...
根据给定的文件信息,我们可以总结出以下关于C#中的字符串截取的相关知识点: ### C#字符串截取方法概述 在C#编程语言中,字符串处理是非常常见的需求之一,尤其是在Web开发、桌面应用开发以及数据处理等领域。...
截取含有中英文的字符串,按字节进行截取,当出现汉字时不能截取半个汉字要把汉字补全。
### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取...通过以上方法,我们可以在Java中有效地处理包含中文字符的字符串截取问题,避免出现乱码等情况。
### C#字符串截取固定长度的方法 在C#编程语言中,经常需要处理字符串操作,其中一个常见的需求就是根据特定的长度来截取字符串。本文将详细介绍如何使用C#实现字符串的固定长度截取,并深入探讨背后的原理和技术...
本文实例讲述了C#实现中英文混合字符串截取的方法,是C#字符串操作中非常常用的一个方法。分享给大家供大家参考之用。具体方法如下: 具体功能代码如下: /// /// 截取中英文混合字符串 /// /// 字符文本 /// ...
本文实例讲述了C#中按字符串截取长字符串的方法。分享给大家供大家参考。具体方法如下: 一般来说使用string自带的split就可以,但是split只能按char类型截取,不是很方便。 按字符串截取,使用的是正则表达式,简单...
在PHP中处理中文字符串截取是一项常见的任务,尤其是在网页开发中。中文字符串通常包含UTF-8编码的字符,这与ASCII编码的英文字符串处理方式有所不同。以下将详细讲解如何在PHP中正确截取中文字符串。 首先,我们...
在进行字符串截取时,如果不考虑编码特性,可能会导致截取结果错误。这篇博客“PHP 不区分中英文截取utf8字符串”提供了一个解决方案,使得在UTF-8环境下可以正确地截取包含中文和英文的字符串,而不影响其完整性。 ...
本文将详细介绍一个专门用于处理中文字符串截取的JavaScript函数,该函数能够根据字符的实际编码长度来精确控制截取的长度。 #### 二、关键概念解析 ##### 2.1 字符串截取 字符串截取是指从一个较长的字符串中...
java 字符串截取类,兼容中英文及日韩文字格式
本文将深入探讨中文字符串截取的底层实现,以及如何在支持多种编码格式的情况下进行操作。 首先,我们需要了解字符串在计算机中的存储方式。在ASCII编码中,一个字符由一个字节表示,而对于中文字符,通常使用...