public static string GetChStringByLength(string s, int len)
{
byte[] data = Encoding.GetEncoding("GB18030").GetBytes(s);
//算出需要截取的byte长度
len *= 2;
//如果长度小于等于指定长度则直接返回
if (data.Length <= len)
{
return s;
}
//判断最后一个字节是否为汉字,如果是则截取掉最后一个byte
int chByteLen = 0; //中文字节的长度
for (int i = len - 1; i >= 0; i--)
{
if (data[i] >= 128)
{
//记录中文字节长度
chByteLen++;
}
else
{
break;
}
}
//如果是奇数则截取掉最后一个byte
if (chByteLen % 2 == 1)
{
len--;
}
byte[] newData = new byte[len];
Array.Copy(data, newData, len);
return Encoding.GetEncoding("GB18030").GetString(newData);
}
分享到:
相关推荐
在C#编程中,有时我们需要根据字节长度来截取字符串,这可能是因为要处理不同编码格式的数据,或者为了适应特定的传输限制。本篇将详细介绍如何在C#中按照字节长度截取字符串,并结合正则表达式进行操作。 首先,...
### C#字符串截取固定长度的方法 在C#编程语言中,经常需要处理字符串操作,其中一个常见的需求就是根据特定的长度来截取字符串。本文将详细介绍如何使用C#实现字符串的固定长度截取,并深入探讨背后的原理和技术...
截取字符串通常有两种主要方法:固定位置截取和指定长度截取。 1. 固定位置截取:这种方法通常基于起始位置和结束位置来获取字符串的一部分。例如,在Python中,你可以使用切片操作符`[start:end]`来截取字符串,...
C#中的`string`类提供了多种截取方法,如`Substring()`,但这些方法默认是基于Unicode字符的,而非字节。为了按字节截取,我们需要自己实现逻辑。以下是一个示例,展示了如何创建一个函数,该函数能够处理HTML字符串...
注意,由于字符可能由多个字节组成(如UTF-8编码中的多字节字符),因此截取字节时可能会截断字符。为了确保完整性,通常需要以字符边界进行截取,这可能需要借助于`codecs`库的`decode()`和`iterdecode()`等方法。 ...
根据题目描述,本节将详细介绍一种适用于单字节与双字节混合字符串的截取方法。该方法通过逐步逼近的方式,确保最终截取的结果符合预期的字节长度。具体步骤如下: 1. **初始化**:首先,根据所需截取的字节数`...
### C#字符串截取方法概述 在C#编程语言中,字符串处理是非常常见的需求之一,尤其是在Web开发、桌面应用开发以及数据处理等领域。字符串截取作为字符串处理的一个基本功能,其应用场景非常广泛,例如网页标题截取...
根据给定的信息,本文将详细解释两个用于C语言中字符串截取的方法:`subStringByIndex` 和 `subStringByPointer`。这两个函数都属于自定义实现,它们提供了灵活且实用的功能来帮助开发者轻松地从一个字符串中提取所...
### 高效中英文字符串截取方法 #### 知识点概述 本文将详细介绍一种用于高效截取中英文混合字符串的方法。该方法适用于处理大量数据(例如10万条记录),能够在极短的时间内(例如1秒)完成所需的操作。这种方法...
在计算机编程中,字符串处理是一项基本而关键的任务,尤其在处理非英文字符时,如何精确地按照字节进行字符串截取变得尤为重要。本文将深入探讨一种按字节截取字符串的方法,并通过分析一个具体的Java代码示例来解释...
`SetLength` 函数允许动态调整字符串的长度,这对于创建固定长度的字符串或根据需要扩展字符串容量非常有帮助。例如,`SetLength(S, 10)` 将 S 的长度设置为10,如果原始字符串长度小于10,剩余位置将用空格填充;...
- **计算替换后字符串的长度**: 替换后的字符串中,非 ASCII 字符都被替换成 `"##"`,这样就可以通过计算替换后字符串的长度来得到原始字符串的实际字节数了。 #### 示例调用 ```javascript var str = "Hello, 你好...
Substring截取字符串字符串截取方法 Substring截取字符串字符串截取方法是计算机编程中一种常见的操作,它指的是从字符串中提取某一段子字符串,在不同的编程语言中有不同的实现方式。下面将介绍Substring截取字符...
这个函数`SafeSubstring`接收字符串S、起始字节位置StartByte和截取的字节数LenBytes,返回一个从指定字节位置开始,长度为LenBytes字节的新字符串。注意,这个函数假设输入的都是有效的字节位置,没有进行边界检查...
这篇博客“一个oracle根据特定字符截取数据”分享了一个实用的方法,适用于那些需要从字符串字段中提取部分信息的情况。通过SQL查询,我们可以高效地完成这项任务。 在Oracle SQL中,有多个内置函数可以帮助我们...
构造函数用于初始化 `SplitStr` 和 `SplitByte`,而截取方法则用于实现字符串截取。 SplitIt 方法 在 `SplitIt` 方法中,我们首先计算需要截取的 loop 数,然后使用 `for` 循环来截取指定字节的字符串。在循环中,...
在自动化和工业控制领域,TIA博途( Totally Integrated Automation...以上就是在TIA博途中,字符转换为字符串以及截取字符串有效字符的具体方法。理解并熟练运用这些技术,能帮助我们在处理通信数据时更加高效和准确。
本文将详细介绍一种使用字节精确计算的ASP.NET字符串截取方法,并通过具体的代码实现来帮助理解。 #### 方法原理 此方法主要采用Unicode编码方式,通过遍历字符串的字节数组来判断每个字符的实际占用空间,从而实现...
在编程领域,特别是涉及到文本处理的时候,`substring`方法是一个非常常见且重要的工具,它用于从一个字符串中截取部分子字符串。这个方法在Java、JavaScript等许多编程语言中都有提供,我们主要以Java为例来详细...
java 字符串截取工具类java 字符串截取工具类