s = "woshi蓝蓝"; int len = s.Length;//will output as 6 byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = sarr.Length;//will output as 3+3*2=9
中英文是一样长的如果想判断实际长度,调用下面的方法就行了 /// <summary> /// 获得字符串oString的实际长度 /// </summary> public int StringLength(string oString) { byte[] strArray=System.Text .Encoding.Default .GetBytes (oString); int res=strArray.Length ; return res; }
/// <summary> /// 这个是返回字符串的前n位,n为字节的数量,可以保证中英文一样长的 /// </summary> public string leftstr(string str,int n) { string ss="";//返回值 if (str.Length<=n/2) { ss=str; } else { int t=0; char[] tmp=str.ToCharArray(); for (int i=0;i<str.Length;i++) { int c; //c=Convert.ToInt32(str.Substring(i,1)); c=(int)tmp[i]; if (c<0) c=c+65536; if (c>255) t=t+2; else t=t+1; if (t>n) break; ss=ss+str.Substring(i,1); } ss=ss+"…"; } return ss;}
int len = s.Length;//will output as 6
byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
len = sarr.Length;//will output as 3+3*2=9
/// <summary>
/// 获得字符串oString的实际长度
/// </summary>
public int StringLength(string oString)
{
byte[] strArray=System.Text .Encoding.Default .GetBytes (oString);
int res=strArray.Length ;
return res;
}
/// 这个是返回字符串的前n位,n为字节的数量,可以保证中英文一样长的
/// </summary>
public string leftstr(string str,int n)
{
string ss="";//返回值
if (str.Length<=n/2)
{
ss=str;
}
else
{
int t=0;
char[] tmp=str.ToCharArray();
for (int i=0;i<str.Length;i++)
{
int c;
//c=Convert.ToInt32(str.Substring(i,1));
c=(int)tmp[i];
if (c<0)
c=c+65536;
if (c>255)
t=t+2;
else
t=t+1;
if (t>n)
break;
ss=ss+str.Substring(i,1);
}
ss=ss+"…";
}
return ss;}
要让你这段程序支持回车和换行字符,应该怎么办?谢谢.