该方法适用余很多中英文混合的长度的字符串截取,比如,一个固定长度是4个中文字的长度的名字,如:“倾颜戏羽”,这个是固定了4个中文字的名字,而我要用英文代替,是不是要8个英文字母,所有,用length属性,就只能截取4个英文字母,下面这个方法就可以解决吧中文字转换成英文长度去自动判断截取固定长度,如果最后一个字符值能放入一个英文,而你要放一个中文,他会省略中文。思想提供给你,你自己看看吧。
protected void Button1_Click(object sender, EventArgs e)
{
this.txtnew.Text = null;//新的字符串赋值处。
string oldstr = this.txtstr.Text.Trim(); //要判断的字符串
int leng =int.Parse(this.txtlength.Text.Trim()); //截取多少长度
this.txtnew.Text= CutString(oldstr, leng); //调用下面方法
}
//总字符占多少个英文的长度,str是指要判断的字符串。 length是以一个中文字=两个英文字,转化为英文的总长度
public string CutString(string str, int length)
{
string substr = str.Trim();
int i = 0, j = 0, k = 0,a=0;//i字符长度,j长度和,k字符个数,a中间的英文字符个数
foreach (char chr in substr)
{
if ((int)chr > 127)
{
i = 2;
}
else
{
i = 1;
a = a + 1;
}
j = j + i;
k++;
if (length % 2 == 1 && i == 2)
{
if (a % 2 == 1)
{
if (j >= length)
{
substr = substr.Substring(0, k);
break;
}
}
else if (a % 2 == 0)
{
if (j >= length)
{
k = k - 1;
substr = substr.Substring(0, k);
break;
}
}
}
else if (length % 2 == 0 && i == 2)
{
if (a % 2 == 1)
{
if (j >= length)
{
k = k - 1;
substr = substr.Substring(0, k);
break;
}
}
else if (a % 2 == 0)
{
if (j >= length)
{
substr = substr.Substring(0, k);
break;
}
}
}
else
{
if (j >= length)
{
substr = substr.Substring(0, k);
break;
}
}
}
return substr;
}
分享到:
相关推荐
### C#字符串截取固定长度的方法 在C#编程语言中,经常需要处理字符串操作,其中一个常见的需求就是根据特定的长度来截取字符串。本文将详细介绍如何使用C#实现字符串的固定长度截取,并深入探讨背后的原理和技术...
在Delphi编程环境中,处理中文和英文混合的字符串截取是一项常见的任务,特别是在涉及到文本处理、数据解析或者用户界面展示时。由于Unicode编码的存在,中文字符通常占据两个字节,而英文字符则占据一个字节,这就...
### 高效中英文字符串截取方法 #### 知识点概述 本文将详细介绍一种用于高效截取中英文混合字符串的方法。该方法适用于处理大量数据(例如10万条记录),能够在极短的时间内(例如1秒)完成所需的操作。这种方法...
因此,截取字符串时,我们不能简单地按照字节数来截断,否则可能会破坏汉字的完整性。 解决这个问题的方法是使用`std::wstring`,它能处理宽字符,适合处理Unicode编码的字符串。在C++11及更高版本中,可以使用`std...
在处理这类问题时,普通的字符串截取函数,如`Left()`,无法很好地处理中文字符,因为中文字符在计算长度时通常被视为两个英文字符的宽度。本文将详细介绍如何在ASP中正确地截取中英文混合的字符串,并提供三个相关...
这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...
### C# 截取指定长度的中英文混合字符串方法解析 在C#中处理文本时,经常需要对字符串进行截取操作。对于包含中文字符的字符串来说,由于一个中文字符通常占据两个字节的位置(在某些编码下),因此在进行长度判断...
为了更好地解决中文字符串截取问题,可以自定义一个函数`StrByteLeft()`来实现更精确的截取。 1. **函数定义**: ```vb Function StrByteLeft(str, num) Dim tmpStr, flag flag = 0 tmpStr = "" If (Len("") ...
一种常用的方法是使用getBytes方法将字符串转换为byte数组,然后根据字节的长度来截取字符串。这种方法可以保证汉字不被截半个,但是需要指定编码方式,否则可能会出现错误。 在上面的代码中,定义了一个substring...
为了正确地截取中英文混合的字符串,我们需要一种能正确处理多字节字符的方法。 在提供的代码实例中,展示了如何在C#中实现这样一个功能。这个方法的核心在于通过遍历字符数组并计算实际字符长度(而非字节长度)来...
根据给定的文件信息,我们可以总结出以下关于C#中的字符串截取的相关知识点: ### C#字符串截取方法概述 在C#编程语言中,字符串处理是非常常见的需求之一,尤其是在Web开发、桌面应用开发以及数据处理等领域。...
C#开发中经常用到一些字符串截取的函数,文档中含有大多数的函数
可以截取中英文字符串,也可以含有字符,里面有好几个方法 有按字符个数截取 有按字节数来截取不会存在乱码
为了解决这个问题,我们需要在插入数据前进行预处理,检查并截取字符串。这里,代码可能会使用一种策略,比如按照字符数截取,或者保持句子完整性的前提下尽可能截取到接近最大长度的字符串。 最后,这个解决方案还...
根据给定文件的信息,我们将深入探讨Java中字符串截取的原理、方法以及在中英文操作系统下的特殊处理。 ### Java字符串截取 #### 原理与实现 在Java中,字符串本质上是一个不可变的字符序列,由`char`类型的数组...
### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取...通过以上方法,我们可以在Java中有效地处理包含中文字符的字符串截取问题,避免出现乱码等情况。
//不分中英文按字符串长度循环每个字符截取换行 这个是隔10个字符换行一次 String psStr="asdfghjklzxcvbnmzxcvbnmsdfghaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbb"; String aa=""; String bb=""; for (int i...
这段代码会正确地截取字符串,即使其中包含了中文和英文字符。 然而,有时候我们可能需要根据字节数而不是字符数来截取,例如限制输出的字节数。这时,我们需要计算每个字符的字节数,并相应调整`start`和`length`...
### Java中英文字符串截取的关键点 1. **字符编码的影响**:中文字符在不同的编码方式下占用的字节数不同。例如,在UTF-8编码中,中文字符通常占用3个字节,而在GBK编码中,则可能占用2或4个字节。因此,在计算字符...
在遍历过程中,根据字符的ASCII值判断当前字符是英文字符还是中文字符,再结合UTF-8编码的规则进行字符串截取。英文字符和半角标点符号直接截取,而中文字符则需要截取连续的三个字节。在截取过程中,还需要注意累计...