/**
* 字符串含中文截位,每个中文汉字按两个字节计算,其他可见字符按一个字节计算
* 在遇到截位时候碰到半个汉字的时候,舍弃半个汉字对应的字节防止插入数据库乱码
* @param str 源字符串
* @param maxByteLen 截位后的字符串最大长度
* @return
*/
public static String subString(String str, final int maxByteLen) {
int len=maxByteLen;
if (str == null || maxByteLen <= 0) {
return "";
}
byte[] bStr;
try {
bStr = str.getBytes("GBK"); //字节流
if (maxByteLen >= bStr.length) {
return str;
}
String cStr = new String(bStr, maxByteLen - 1, 2,"GBK");
if (cStr.length() == 1 && str.contains(cStr)) {
len--;
}
return new String(bStr, 0, len,"GBK"); //重新组字符串
} catch (UnsupportedEncodingException e) {
throw new java.lang.RuntimeException("substring fail ");
}
}
分享到:
相关推荐
例如,如果输入字符串为 `"我 ABC"`,并且指定截取 4 个字节,则输出为 `"我 AB"`,而不是 `"我 AB"` 中的半个汉字。 SplitString 类 在本例中,我们定义了一个 `SplitString` 类,该类具有两个成员变量 `SplitStr...
本文将详细解析提供的Java代码,了解如何实现按字节截取字符串,确保不出现半个汉字。 首先,给出的代码定义了一个名为`StringTool`的工具类,其中包含一个静态方法`getSubString`,该方法接受一个字符串`str`和一...
面试中可能会遇到类似的问题,要求编写一个函数来截取字符串,确保汉字不被截半。以下是一个简单的示例实现: ```java public class SplitString { private String str; private int byteNum; public ...
根据给定文件的信息,本文将围绕“字符串截取”这一主题进行深入探讨,重点在于如何在Java环境下实现对包含中文字符的字符串进行精确截取,同时确保不会出现半个汉字的情况。 ### 字符串截取的基本概念 在计算机...
### Java截取字符串(判断汉字) #### 背景与目的 在开发Web应用程序时,尤其是在使用Java Server Pages (JSP) 进行开发时,经常需要处理包含中文字符的字符串。由于中文字符通常占用两个字节,而英文字符只占用一...
最后,根据双字节字符的数量是否为偶数来决定截取的字节数,以保证截取后字符串的末尾不会是半个中文字符。 这种方法虽然能够较好地处理中文字符的截取,但并不完美。在处理多语言混合的字符串时,可能需要使用UTF-...
特别地,对于可能只截取到半个汉字的情况,jieQu方法会自动增加截取字节的长度,直到获取完整的字符为止。 最后,jieQu方法返回截取后的字符串,并在main方法中通过调用jieQu方法,传入特定的字符串和长度值,输出...
Java截取中英文混合字符串的方法是指在Java语言中截取混合了中英文的字符串,并且保证汉字不被截半个的方法。这种方法在实际开发中非常有用,特别是在处理中文字符串时。 在Java中,字符串的截取可以使用substring...
在Java编程语言中,处理包含汉字的字符串时,由于汉字在不同编码格式下占用的字节数不同,按字节截取字符串会面临特殊挑战。本文将深入探讨如何正确地按字节截取带有汉字的字符串,以确保不出现半字符或者乱码的情况...
Java 实现中英文混合字符截取方法 Java 实现中英文混合字符截取方法是指在 Java 编程...通过本文的介绍,读者可以了解 Java 实现中英文混合字符截取方法的思路和实现细节,从而更好地解决Java截取字符串时遇到的问题。
7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取... 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
本题中,我们需要编写一个函数,该函数能够根据指定的字节数截取字符串,并确保不会出现汉字被截半的情况。这是一个涉及字符编码和边界条件处理的问题。 首先,我们来理解题目中的要求: 1. 函数接收两个参数,一个...
本例通过Java代码实现了一个截取字符串的函数,该函数能够根据指定的字节数截取字符串,并保证在截取过程中不会将中文字符截断,也就是说,如果一个中文字符的字节长度超过了一个字节,那么在截取时会保持该字符的...
- 对于中文字符的处理,应特别注意边界情况的处理,避免出现半个汉字的情况。 - 使用 jQuery 操作 DOM 元素时,需要确保 jQuery 已经正确加载。 综上所述,字符串截取是一个在日常开发中非常实用的功能,尤其在处理...
例如,在中文环境下,一个汉字占两个字符位置,而英文字符只占一个字符位置。如果按照字符数量来截取,可能会导致截取后的字符串不完整或出现乱码。 ### 二、技术要点 #### 1. 全角与半角字符识别 全角字符通常指...
7、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节... 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
在上面的代码中,我们使用了一个自定义的 `subString()` 方法来截取字符串,保证汉字不被截半个。 知识点 4:Java 中的 Unicode 字符 在 Java 中,我们可以使用 Unicode 字符来表示汉字。在上面的代码中,我们使用...
但是要保证汉字不被截半个。这道题考察了Java中的字符串处理和 Unicode 知识。 知识点8: 排序算法 排序问题需要列举出各种排序算法,并用Java实现一个快速排序。这道题考察了Java中的排序算法和数据结构的知识。 ...
在处理中文字符串时,特别需要注意的是,由于中文字符通常占两个字节,因此截取时不能按照单个字节计算,否则可能会出现半个字符的情况。Java的`String`类能够正确处理Unicode字符,所以在正确使用`substring()`时,...
核心思路:输入一个字符串和字节数,输出按字节数截取字符串, 其中要保证汉字不能被截半个字节,设计思路就是判断汉字占几个字节,通过string.valueof.getBytes()方法获取字符的字节数,之后遍历判断不要超过指定的...