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 set str=123456789 echo 前两个字符为 %str:~0,2% ``` 这里,`str:~0,2` 表示从变量 `str` 的第0个字符开始截取2个字符。 #### 2. 截取字符串的...
由于Unicode编码的存在,中文字符通常占据两个字节,而英文字符则占据一个字节,这就导致了在不正确处理的情况下可能会截断字符,从而出现乱码问题。本篇文章将深入探讨如何在Delphi中实现中文和英文混合字符串的...
在自动化和工业控制领域,TIA博途( Totally Integrated Automation...以上就是在TIA博途中,字符转换为字符串以及截取字符串有效字符的具体方法。理解并熟练运用这些技术,能帮助我们在处理通信数据时更加高效和准确。
本篇文章将详细探讨“按byte截取字符串”这一技术点,并通过两个Java文件——SliceByByteTest.java和SliceByByte.java的实例来阐述其实现方法。 首先,我们需要理解字符串在计算机内存中的存储方式。在Java中,字符...
在 `main` 方法中,我们创建了一个 `SplitString` 对象,并调用其 `SplitIt` 方法来截取字符串。 总结 本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该...
在C#编程语言中,经常需要处理字符串操作,其中一个常见的需求就是根据特定的长度来截取字符串。本文将详细介绍如何使用C#实现字符串的固定长度截取,并深入探讨背后的原理和技术细节。 #### 方法一:使用Substring...
`Concat` 函数用于将两个或多个字符串合并成一个新字符串。如 `Concat('Borland', 'Delphi', '7.0')` 将返回 "BorlandDelphi7.0"。这对于动态构建字符串非常有用,特别是在需要生成复杂文本输出的情况下。 #### 4. ...
`subStringByIndex` 函数通过指定起始索引(`begin`)和结束索引(`end`)来截取字符串。该函数返回一个新的字符串,该字符串包含了原字符串中从 `begin` 到 `end`(包括 `end`)的所有字符。 #### 参数说明 - **...
在编程领域,特别是涉及到文本处理的时候,`substring`方法是一个非常常见且重要的工具,它用于从一个字符串中截取部分子字符串。这个方法在Java、JavaScript等许多编程语言中都有提供,我们主要以Java为例来详细...
### ASP.NET 截取字符串方法详解 在ASP.NET开发中,有时我们需要对字符串进行截取操作,特别是当涉及到多字节字符(如中文)时,简单的字符串截取可能会导致乱码问题。本文将详细介绍一种使用字节精确计算的ASP.NET...
这就意味着当我们按照字节长度截取字符串时,可能会将一个完整的汉字分割成两部分,从而导致乱码。 Java中的`String`类提供了多种截取字符串的方法,如`substring()`、`subSequence()`等,但它们都是基于字符(char...
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"的...
如果大于10,则使用`fn:substring`函数来截取字符串的前10个字符,否则直接输出原字符串。 使用自定义函数 在使用jstl标签时,我们也可以使用自定义函数来截取字符串。例如,我们可以创建一个名为`UFunction`的类...
"`,现在希望截取前5个字符(其中中文字符按两个字符计): ```javascript var str = "Hello, 你好!"; var result = subString(str, 5, true); console.log(result); // 输出:"Hello,…" ``` #### 六、注意事项 ...
这段C#代码用于按照指定的长度截取字符串,一个中文字符算2个字符,按照这个方法截取的字符串基本可以保持显示长度一致 /// /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度 /// /// 待截取的字符...
面试中可能会遇到类似的问题,要求编写一个函数来截取字符串,确保汉字不被截半。以下是一个简单的示例实现: ```java public class SplitString { private String str; private int byteNum; public ...
然而,当涉及到处理中文字符时,Impala的内置函数`substr()`和`substring()`可能会遇到一些挑战,尤其是在截取中文字符串时可能出现乱码问题。这是因为这两个函数在设计时可能没有充分考虑多字节字符集,如UTF-8,而...