C#中一些字串操作的常用用法

來源:互聯網
上載者:User

C#中一些字串操作的常用用法

//獲得漢字的區位碼
  byte[]array=newbyte[2];
  array=System.Text.Encoding.Default.GetBytes("啊");

inti1=(short)(array[0]-''\0'');
  inti2=(short)(array[1]-''\0'');

//unicode解碼方式下的漢字碼
  array=System.Text.Encoding.Unicode.GetBytes("啊");
  i1=(short)(array[0]-''\0'');
  i2=(short)(array[1]-''\0'');

//unicode反解碼為漢字
  stringstr="4a55";
  strings1=str.Substring(0,2);
  strings2=str.Substring(2,2);

intt1=Convert.ToInt32(s1,16);
  intt2=Convert.ToInt32(s2,16);

array[0]=(byte)t1;
  array[1]=(byte)t2;

strings=System.Text.Encoding.Unicode.GetString(array);

//default方式反解碼為漢字
  array[0]=(byte)196;
  array[1]=(byte)207;
  s=System.Text.Encoding.Default.GetString(array);

//取字串長度
  s="iam方槍槍";
  intlen=s.Length;//willoutputas6
  byte[]sarr=System.Text.Encoding.Default.GetBytes(s);
  len=sarr.Length;//willoutputas3+3*2=9

//字串相加
  System.Text.StringBuildersb=newSystem.Text.StringBuilder("");
  sb.Append("i");
  sb.Append("am");
  sb.Append("方槍槍");

//擷取ASC碼

int ASC(String Data)
{
byte[] b = System.Text.Encoding.Default.GetBytes(Data);
int p=0;
if(b.Length==1) //如果為英文字元直接返回
return (int)b[0];
for( int i = 0; i < b.Length; i++)
{
p = (int)b[ i ];
p = p * 256 + b[ i+1] - 65536;
}
return p;
}

/// <summary>求字串長度
/// 求字串長度
/// </summary>
/// <param name="inputString"></param>
/// <returns></returns>
int len(String inputString)
{ string s=inputString;
   int len=s.Length;//willoutputa s6
   byte[]sarr=System.Text.Encoding.Default.GetBytes(s);
   len=sarr.Length;//willoutputa s3+3*2=9
return len;
}

//檢測含有中文字串的實際長度
str為要檢測的字串:
ASCIIEncoding n = new ASCIIEncoding();
byte[] b = n.GetBytes(str);
int l = 0; // l 為字串之實際長度
for (int i=0;i <= b.Length-1;i++)
{
if (b[i] ==63) //判斷是否為漢字或全腳符號
{
l++;
}
l++;
}

//載字串修正版(yaosansi)
/// <summary>
/// 截字串
/// </summary>
/// <param name="inputString">所要截取的字串</param>
/// <param name="len">要載得字串的長度</param>
/// <returns></returns>
public static string CutString(string inputString,int len)
{

ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen=0;
string tempString="";
byte[] s = ascii.GetBytes(inputString);
for(int i=0;i<s.Length-1;i++)
{
if((int)s[i]==63)
{
tempLen+=2;
}
else
{
tempLen+=1;
}

try
{
tempString+=inputString.Substring(i,1);
}
catch
{
break;
}

if(tempLen>len)
break;
}
//如果截過則加上半個省略符號
byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);
if(mybyte.Length>len)
tempString+="";

return tempString;
}

//截取字串(原稿)
public static string CutString(string inputString,int len)
{

ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen=0;
string tempString="";
byte[] s = ascii.GetBytes(inputString);
for(int i=0;i<s.Length;i++)
{
if((int)s[i]==63)
{
tempLen+=2;
}
else
{
tempLen+=1;
}

try
{
tempString+=inputString.Substring(i,1);
}
catch
{
break;
}

if(tempLen>len)
break;
}
//如果截過則加上半個省略符號
byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);
if(mybyte.Length>len)
tempString+="…";

return tempString;
}

//在C#中截取指定長度的中文字串
privatestaticstringSubString(stringstringToSub,intlength){
Regexregex=newRegex("[\u4e00-\u9fa5]+",RegexOptions.Compiled);
char[]stringChar=stringToSub.ToCharArray();
StringBuildersb=newStringBuilder();
intnLength=0;

for(inti=0;i<stringChar.Length;i++){
if(regex.IsMatch((stringChar[i]).ToString())){
sb.Append(stringChar[i]);
nLength+=2;
}
else{
sb.Append(stringChar[i]);
nLength=nLength+1;
}

if(nLength>length)
break;
}

returnsb.ToString();
}
/////////////////////////////////////////////////////////////////////

string-->bytearray

byte[]data=Syste.Text.Encoding.ASCII.GetBytes(string);

string-->byte

bytedata=Convert.ToByte(string);

byte[]-->string

stringstring=Encoding.ASCII.GetString(bytes,0,nBytesSize);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.