`
catastiger
  • 浏览: 138448 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JAVA截取字符,防止半个汉字

    博客分类:
  • JAVA
 
阅读更多
    /**
     * 字符串含中文截位,每个中文汉字按两个字节计算,其他可见字符按一个字节计算
     * 在遇到截位时候碰到半个汉字的时候,舍弃半个汉字对应的字节防止插入数据库乱码
     * @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 ");
		}
	}
分享到:
评论

相关推荐

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

    例如,如果输入字符串为 `"我 ABC"`,并且指定截取 4 个字节,则输出为 `"我 AB"`,而不是 `"我 AB"` 中的半个汉字。 SplitString 类 在本例中,我们定义了一个 `SplitString` 类,该类具有两个成员变量 `SplitStr...

    Java 按照字节来截取字符串的代码(不会出现半个汉字)

    本文将详细解析提供的Java代码,了解如何实现按字节截取字符串,确保不出现半个汉字。 首先,给出的代码定义了一个名为`StringTool`的工具类,其中包含一个静态方法`getSubString`,该方法接受一个字符串`str`和一...

    Java精确截取字符串.doc

    面试中可能会遇到类似的问题,要求编写一个函数来截取字符串,确保汉字不被截半。以下是一个简单的示例实现: ```java public class SplitString { private String str; private int byteNum; public ...

    字符串 截取

    根据给定文件的信息,本文将围绕“字符串截取”这一主题进行深入探讨,重点在于如何在Java环境下实现对包含中文字符的字符串进行精确截取,同时确保不会出现半个汉字的情况。 ### 字符串截取的基本概念 在计算机...

    java 截取字符串(判断汉字)

    ### Java截取字符串(判断汉字) #### 背景与目的 在开发Web应用程序时,尤其是在使用Java Server Pages (JSP) 进行开发时,经常需要处理包含中文字符的字符串。由于中文字符通常占用两个字节,而英文字符只占用一...

    Java精确截取字符串.pdf

    最后,根据双字节字符的数量是否为偶数来决定截取的字节数,以保证截取后字符串的末尾不会是半个中文字符。 这种方法虽然能够较好地处理中文字符的截取,但并不完美。在处理多语言混合的字符串时,可能需要使用UTF-...

    截取如下字符串“java程序教程”的前5个字节,字符串应该为“java程”,截取前6个字符,字符串也应该为“java程”,程序实现之.

    特别地,对于可能只截取到半个汉字的情况,jieQu方法会自动增加截取字节的长度,直到获取完整的字符为止。 最后,jieQu方法返回截取后的字符串,并在main方法中通过调用jieQu方法,传入特定的字符串和长度值,输出...

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

    Java截取中英文混合字符串的方法是指在Java语言中截取混合了中英文的字符串,并且保证汉字不被截半个的方法。这种方法在实际开发中非常有用,特别是在处理中文字符串时。 在Java中,字符串的截取可以使用substring...

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

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

    java实现中英文混合字符截取方法

    Java 实现中英文混合字符截取方法 Java 实现中英文混合字符截取方法是指在 Java 编程...通过本文的介绍,读者可以了解 Java 实现中英文混合字符截取方法的思路和实现细节,从而更好地解决Java截取字符串时遇到的问题。

    JAVA按字节截取字符串(适用于Unicode)

    7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取... 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。

    java 一个截取字符串的函数

    本题中,我们需要编写一个函数,该函数能够根据指定的字节数截取字符串,并确保不会出现汉字被截半的情况。这是一个涉及字符编码和边界条件处理的问题。 首先,我们来理解题目中的要求: 1. 函数接收两个参数,一个...

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

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

    字符串截取

    - 对于中文字符的处理,应特别注意边界情况的处理,避免出现半个汉字的情况。 - 使用 jQuery 操作 DOM 元素时,需要确保 jQuery 已经正确加载。 综上所述,字符串截取是一个在日常开发中非常实用的功能,尤其在处理...

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

    例如,在中文环境下,一个汉字占两个字符位置,而英文字符只占一个字符位置。如果按照字符数量来截取,可能会导致截取后的字符串不完整或出现乱码。 ### 二、技术要点 #### 1. 全角与半角字符识别 全角字符通常指...

    拆分带中文字符串.zip

    7、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节... 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。

    java笔试算法题及答案.pdf

    在上面的代码中,我们使用了一个自定义的 `subString()` 方法来截取字符串,保证汉字不被截半个。 知识点 4:Java 中的 Unicode 字符 在 Java 中,我们可以使用 Unicode 字符来表示汉字。在上面的代码中,我们使用...

    Java经典面试题(带答案)

    但是要保证汉字不被截半个。这道题考察了Java中的字符串处理和 Unicode 知识。 知识点8: 排序算法 排序问题需要列举出各种排序算法,并用Java实现一个快速排序。这道题考察了Java中的排序算法和数据结构的知识。 ...

    上海交通银行JAVA笔试编程题

    在处理中文字符串时,特别需要注意的是,由于中文字符通常占两个字节,因此截取时不能按照单个字节计算,否则可能会出现半个字符的情况。Java的`String`类能够正确处理Unicode字符,所以在正确使用`substring()`时,...

    Java算法之对字符串的各种处理(二)

    核心思路:输入一个字符串和字节数,输出按字节数截取字符串, 其中要保证汉字不能被截半个字节,设计思路就是判断汉字占几个字节,通过string.valueof.getBytes()方法获取字符的字节数,之后遍历判断不要超过指定的...

Global site tag (gtag.js) - Google Analytics