`
ljl_ss
  • 浏览: 54798 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

截取字符串 中文按两个字符长度处理情况

阅读更多

public class SubStringTest {
/**
 * 
 * @param src 源字符串
 * @param subLength   需要截取的长度
 * @return
 */
	public static String subString(String src, int subLength) {
		if(src == null){
			return null;
		}
		if(subLength == 0){
			return "";
		}
		StringBuffer sb = new StringBuffer();
		char[] chars = src.toCharArray();
		for (char a : chars) {
			if (isContinueAppend(sb, a, subLength)) {
				sb.append(a);
			}
			else{
				break;
			}
		}
		return sb.toString();
	}
/**
 * 
 * @param sb 已截到的字符串
 * @param a  当前要被装进sb的字符
 * @param subLength  需要截取的长度
 * @return
 */
	public static boolean isContinueAppend(StringBuffer sb, char a,
			int subLength) {
		int currentLength = 0;
		for (char temp : sb.toString().toCharArray()) {
			currentLength += (temp >> 8 == 0) ? 1 : 2;
		}
		return (currentLength + (a >> 8 == 0 ? 1 : 2)) <= subLength;
	}

	public static void main(String[] args) {
		System.out.println(subString("我是一a个中国人",7));
	}
}


分享到:
评论

相关推荐

    截取指定长度的字符串

    截取字符串通常有两种主要方法:固定位置截取和指定长度截取。 1. 固定位置截取:这种方法通常基于起始位置和结束位置来获取字符串的一部分。例如,在Python中,你可以使用切片操作符`[start:end]`来截取字符串,...

    bat截取字符串

    例如,如果需要截取字符串的前两个字符,可以使用以下语法: ```bat set str=123456789 echo 前两个字符为 %str:~0,2% ``` 这里,`str:~0,2` 表示从变量 `str` 的第0个字符开始截取2个字符。 #### 2. 截取字符串的...

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

    由于Unicode编码的存在,中文字符通常占据两个字节,而英文字符则占据一个字节,这就导致了在不正确处理的情况下可能会截断字符,从而出现乱码问题。本篇文章将深入探讨如何在Delphi中实现中文和英文混合字符串的...

    TIA博途-字符转换为字符串以及截取字符串有效字符的具体方法示例.docx

    在自动化和工业控制领域,TIA博途( Totally Integrated Automation...以上就是在TIA博途中,字符转换为字符串以及截取字符串有效字符的具体方法。理解并熟练运用这些技术,能帮助我们在处理通信数据时更加高效和准确。

    按byte截取字符串

    本篇文章将详细探讨“按byte截取字符串”这一技术点,并通过两个Java文件——SliceByByteTest.java和SliceByByte.java的实例来阐述其实现方法。 首先,我们需要理解字符串在计算机内存中的存储方式。在Java中,字符...

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

    在 `main` 方法中,我们创建了一个 `SplitString` 对象,并调用其 `SplitIt` 方法来截取字符串。 总结 本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该...

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

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

    Delphi 字符串截取函数

    `Concat` 函数用于将两个或多个字符串合并成一个新字符串。如 `Concat('Borland', 'Delphi', '7.0')` 将返回 "BorlandDelphi7.0"。这对于动态构建字符串非常有用,特别是在需要生成复杂文本输出的情况下。 #### 4. ...

    C语言实现字符串截取

    `subStringByIndex` 函数通过指定起始索引(`begin`)和结束索引(`end`)来截取字符串。该函数返回一个新的字符串,该字符串包含了原字符串中从 `begin` 到 `end`(包括 `end`)的所有字符。 #### 参数说明 - **...

    Substring字符串截取-kaic

    在编程领域,特别是涉及到文本处理的时候,`substring`方法是一个非常常见且重要的工具,它用于从一个字符串中截取部分子字符串。这个方法在Java、JavaScript等许多编程语言中都有提供,我们主要以Java为例来详细...

    asp.net截取字符串方法

    ### ASP.NET 截取字符串方法详解 在ASP.NET开发中,有时我们需要对字符串进行截取操作,特别是当涉及到多字节字符(如中文)时,简单的字符串截取可能会导致乱码问题。本文将详细介绍一种使用字节精确计算的ASP.NET...

    关于java按字节截取带有汉字的字符串的解法

    这就意味着当我们按照字节长度截取字符串时,可能会将一个完整的汉字分割成两部分,从而导致乱码。 Java中的`String`类提供了多种截取字符串的方法,如`substring()`、`subSequence()`等,但它们都是基于字符(char...

    oracle数据库截取字符串

    Oracle数据库提供了多种截取字符串的方法,本文将介绍 substr 和 instr 两个常用函数,以及 case when then else end 语句的使用。 一、substr 函数 substr 函数用于截取字符串的一部分,语法为 `substr(string, ...

    截取特定部分字符串

    "截取特定部分字符串"这个话题涉及到字符串操作的基础知识,它包括查找字符串的开始位置、结束位置,然后提取这两个位置之间的子字符串。在这个场景下,我们可能会用到`substring()`方法或其他相关函数来实现这一...

    [字符串]字符串提取(获取两个字符串中间的字符串)

    2. **Substring**:根据提供的起始索引和长度,截取字符串的一部分。 例如,假设我们有一个字符串`str = "Hello, my name is John Doe"`,我们想提取"my name"和"John Doe"之间的子串。我们可以先找到"my name"的...

    (TAG标签)jstl和struts2标签截取字符串[文].pdf

    如果大于10,则使用`fn:substring`函数来截取字符串的前10个字符,否则直接输出原字符串。 使用自定义函数 在使用jstl标签时,我们也可以使用自定义函数来截取字符串。例如,我们可以创建一个名为`UFunction`的类...

    JavaScript截取中文字符串

    "`,现在希望截取前5个字符(其中中文字符按两个字符计): ```javascript var str = "Hello, 你好!"; var result = subString(str, 5, true); console.log(result); // 输出:"Hello,…" ``` #### 六、注意事项 ...

    C#区分中英文按照指定长度截取字符串的方法

    这段C#代码用于按照指定的长度截取字符串,一个中文字符算2个字符,按照这个方法截取的字符串基本可以保持显示长度一致 /// /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度 /// /// 待截取的字符...

    Java精确截取字符串.doc

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

    impala中substr()截取中文字符串乱码的问题

    然而,当涉及到处理中文字符时,Impala的内置函数`substr()`和`substring()`可能会遇到一些挑战,尤其是在截取中文字符串时可能出现乱码问题。这是因为这两个函数在设计时可能没有充分考虑多字节字符集,如UTF-8,而...

Global site tag (gtag.js) - Google Analytics