估计这个题目应该不陌生,最近开发项目遇到按照字节数截取字符串的问题,由于中文跟英文单个字符长度不同故很容易出现问题,按照一贯的作风,在www.baidu.com搜索一下,果真有很多答案,结果找来找去,没发现一个满意的答案,都存在一些问题;最后结合网上的思路,自己修改并完善。代码如下:
public class SplitStr {
private String splitStr;
private int splitByte;
public SplitStr(String splitStr,int splitByte) {
this.splitByte = splitByte;
this.splitStr = splitStr;
}
public void splitStrMethod() throws Exception{
String resultStr = "";
byte[] ArrOfByte = splitStr.getBytes();
if(splitByte >= 1){
int j = 0;
for(int i = 0; i < splitByte; i++){
if(ArrOfByte[i] < 0)
j++ ;
}
if((j % 2 == 1) && (ArrOfByte[splitByte - 1] < 0)){
resultStr = new String(ArrOfByte, 0, --splitByte,"gb2312");
}else{
resultStr = new String(ArrOfByte, 0, splitByte,"gb2312");
}
System.out.println(resultStr);
}
}
public static void main(String[] args) throws Exception {
String str = "Java用途很广";
//SplitStr s = new SplitStr(str,6);//Java用
//SplitStr s = new SplitStr(str,7);//Java用
SplitStr s = new SplitStr(str,8);//Java用途
s.splitStrMethod();
}
分享到:
相关推荐
在C#编程中,有时我们需要根据字节长度来截取字符串,这可能是因为要处理不同编码格式的数据,或者为了适应特定的传输限制。本篇将详细介绍如何在C#中按照字节长度截取字符串,并结合正则表达式进行操作。 首先,...
因此,如果我们想要根据字节数截取字符串,我们不能简单地用`substring()`,而是需要先计算字符串的字节数,然后根据这个字节数来定位截取的位置。 下面是一种可能的实现方式: 1. 使用`getBytes()`方法转换字符串...
由于计算机内部存储和处理的都是二进制数据,对于非英文字符,在不同的编码(如UTF-8、GBK)下占用的字节数是不同的,因此直接按字符截取往往不能满足需求。本文旨在介绍如何利用Java语言按照字节截取字符串,并给出...
在 `SplitIt` 方法中,我们首先计算需要截取的 loop 数,然后使用 `for` 循环来截取指定字节的字符串。在循环中,我们使用 `substring` 方法来截取字符串,并将结果输出。 main 方法 在 `main` 方法中,我们创建了...
在Java编程语言中,处理带有汉字的字符串时,由于汉字占据多个字节,按照字节进行截取可能会导致汉字被不完整地分割,从而产生乱码。为了解决这个问题,我们需要理解Unicode编码以及如何在Java中正确处理多字节字符...
字符串是由字符组成的序列,而“字符串按照指定的字节数来截取”这个话题,就是指如何在字符串中提取固定字节数的部分。在不同的编程语言中,都有相应的函数或方法来实现这一功能。 在Python中,可以使用内置的`...
这个方法将接收一个整型参数`length`,表示要截取的字节数,并返回一个新的字符串,该字符串是从原字符串中按照指定字节数截取的结果。 #### 方法实现细节 下面展示了`bSubstring`扩展方法的具体实现: ```csharp...
最近需要用到按字节数截取字符串。在网上找了很多方法。 Encoding.Default.GetString采用的Default Encoding.UTF8.GetBytes采用的是utf-8编码。这样当然是乱码。尤其出现中文时候。 对这类数据处理当然要用统一的...
实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,String类是按字符截取 的,例如"中国abc".substring(1,3),将返回“国a”。这里 要求按字节截取,一个英文字符当一个字节,一个中文字符当两...
一般截取字符串是按照字符截取的,现在这个代码是按照字节截取字符
在Java编程中,有时我们需要对字符串进行精确截取,特别是在处理中文字符时,由于中文字符在内存中通常以双字节形式存储,因此简单的按照字符数截取可能会导致汉字被分割,影响显示效果。这个问题在文档标题“Java...
在Java编程中,有时我们需要按照字节长度来截取字符串,尤其在处理中文字符时,因为一个中文字符在UTF-8编码下占用两个字节,而一个英文字符仅占用一个字节。这样的需求通常出现在前端展示限制或者传输数据时,避免...
在某些场景下,我们可能需要按照特定的字节数来截取字符串,比如在网络传输、数据解析或编码转换时。本篇文章将详细探讨“按byte截取字符串”这一技术点,并通过两个Java文件——SliceByByteTest.java和SliceByByte....
当我们在编程中处理字符串时,如果只是简单地按字节数进行截取,可能会遇到问题,尤其是处理多字节字符时。例如,在UTF-16中,一个汉字通常占用两个字节。如果截取操作不考虑这一点,就可能截断一个字符,导致乱码。...
首先,理解为什么需要按照字节长度而不是字符长度截取字符串。在处理非ASCII字符(如中文、日文等)时,一个字符可能占用多个字节。如果单纯按字符长度截取,可能会导致截取到半字符,从而破坏字符串的读取。因此,...
java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...
如果字符串长度不能被每次截取的字节数整除,则最后一次截取的长度会少于指定的字节数。 3. **实现截取逻辑**:遍历字符串,按照计算出的次数进行截取,并打印或存储每次截取的结果。 #### 示例代码解析 ```java ...
7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉...
在Java编程语言中,处理包含汉字的字符串时,由于汉字在不同编码格式下占用的字节数不同,按字节截取字符串会面临特殊挑战。本文将深入探讨如何正确地按字节截取带有汉字的字符串,以确保不出现半字符或者乱码的情况...
这个函数`SafeSubstring`接收字符串S、起始字节位置StartByte和截取的字节数LenBytes,返回一个从指定字节位置开始,长度为LenBytes字节的新字符串。注意,这个函数假设输入的都是有效的字节位置,没有进行边界检查...