我要截取一点字符串
abcdefg这里有汉字abcd我要取的是前9位 也就是:abcdefg这但是这样取出来的是:abcdefg这里
String SubString = String1.Substring(0,9);
要怎么改呢?
abcdefg这里有汉字abcd我要取的是前9位 也就是:abcdefg这但是这样取出来的是:abcdefg这里
String SubString = String1.Substring(0,9);
要怎么改呢?
解决方案 »
- 请问c#的listbox能对item设置附加数据吗?
- 保存文件的时候,怎么添加BOM
- winform-渐变背景色
- System.IO.FileNotFoundException是什么错误啊
- 如何用IHTMLDOMNode建立一个 IHTMLElement
- c#怎么与java极度相似?包括Object类都如此相似。两者有何渊缘?望大家发表意见?
- 关于vs.net工具
- 象CAD中画图区域(画布)可以非常大,用c#是如何实现的
- dataGrid的数据绑定
- Unity3D串口通信编码报错
- 请问用鼠标点击DataGrid(Winform)某一个单元格如何得到这个单元格的值?
- 各位大虾,如何操作datagrid中的单元格?谢谢!!!
/// 从包含中英文的字符串中截取固定长度的一段,strInput为传入字符串,intLen为截取长度(一个汉字占两个位)。
/// </summary>
public string cutString(string strInput,int intLen)
{
strInput=strInput.Trim();
byte[] myByte = System.Text.Encoding.Default.GetBytes(strInput);
if(myByte.Length>intLen)
{
//截取操作
string resultStr="";
for(int i=0;i<strInput.Length;i++){
byte[] tempByte=System.Text.Encoding.Default.GetBytes(resultStr);
if(tempByte.Length<intLen-4)
{
resultStr+=strInput.Substring(i,1);
}
else{
break;
}
}
return resultStr+" ...";
}
else{
return strInput;
}
}
/// 从包含中英文的字符串中截取固定长度的一段,strInput为传入字符串,intLen为截取长度(一个汉字占两个位)。
/// </summary>
public string cutString(string strInput,int intLen)
{
strInput=strInput.Trim();
byte[] myByte = System.Text.Encoding.Default.GetBytes(strInput);
if(myByte.Length>intLen)
{
//截取操作
string resultStr="";
for(int i=0;i<strInput.Length;i++){
byte[] tempByte=System.Text.Encoding.Default.GetBytes(resultStr);
if(tempByte.Length<intLen)
{
resultStr+=strInput.Substring(i,1);
}
else{
break;
}
}
return resultStr;
}
else{
return strInput;
}
}
但是直接使用length得出的是15
byte[] myByte = System.Text.Encoding.Default.GetBytes(strInput);strInput.Length为15
myByte.Length为20
举个例子:strInput="012345这里有汉字abcd";
拆分为 string[] strArray=new string[200]
strArray[0]="012345这" 8位
strArray[1]="里有汉字a" 9位
strArray[2]="bcd" 3位你给的方法我不知道要怎么修改?谢谢