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

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);

(0)

相关推荐

  • c#对字符串操作的技巧小结

    字符串是由类定义的,如下1 public sealed class String : IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>注意它从接口IEnumerable<char>派生,那么如果想得到所有单个字符,那就简单了,1 List<char> chars = s.ToL

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

    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("啊"); i

  • JavaScript中常见的字符串操作函数及用法汇总

    本文实例总结了JavaScript中常见的字符串操作函数及用法.分享给大家供大家参考.具体分析如下: 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串的处理是前端招聘过程中最常见的题型之一.这些题有一个特点,站在考官的角度去考虑,它考的不是你会不会,而是你能不能在不借用XX手册或者XX指南再或者百度谷歌的情况下,用比较简洁的方式写出答案来.可惜的是,很多开发人员,当然我也

  • PHP常见字符串操作函数与用法总结

    本文实例讲述了PHP常见字符串操作函数与用法.分享给大家供大家参考,具体如下: 一.字符串的格式化 1.字符串的格式化 trim()函数可以去除字符串的开始位置和结束位置的空格,并将结果字符串返回,默认情况下去除的字符是换行符和回车符(\n和\r),水平和垂直制表符(\t和X0B) ltrim()函数只从字符的开始处(左边)去除空格 rtrim()函数只从函数的结束处(右边)去除空格 2.格式化字符串以便显示 ①使用HTML格式化:n12br()函数 在字符串中的新行(\n)之前插入换行符 <?

  • PHP中多字节字符串操作实例详解

    目录 前言 字符串操作 字符串正则操作 字符串编码转换 HTTP 参数操作 其它属性查看 总结 前言 什么是多字节的字符串操作呢?其实不少的同学可能都已经使用过了,但我们还是要从最基础的问题说起. 一个字符占几个字节并不是我们表面上看到的那样.正常情况下,一个数字或英文以及英文符号都是占用一个字节的.但是这个世界的语言文字何其之多,特别是像中文.日文这样的文字,往往用一个字节装不下,这时候就需要多字节来解决了(多字节一般第一个字节是前导字节表示当前是什么语言文字,后面的是正被的字节编码).比如说

  • Python中的字符串操作和编码Unicode详解

    本文主要给大家介绍了关于 Python中的字符串操作和编码Unicode的一些知识,下面话不多说,需要的朋友们下面来一起学习吧. 字符串类型 str:Unicode字符串.采用''或者r''构造的字符串均为str,单引号可以用双引号或者三引号来代替.无论用哪种方式进行制定,在Python内部存储时没有区别. bytes:二进制字符串.由于jpg等其他格式的文件不能用str进行显示,所以才用bytes来表示,bytes的每个字节为一个0-255的数字.如果打印的时候,Python会把能够用ASCI

  • Linux中RPM文件操作的常用命令总结

    简介 众所周知在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的"添加/删除程序",但是功能又比"添加/删除程序"强很多,它就是Red Hat Package Manager(简称RPM).本文介绍的就是关于Linux中RPM文件操作的常用命令,下面话不多说,来一起看看吧. 一.RPM 安装操作 命令: rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包: rpm -iv e

  • JavaScript中的字符串操作详解

    一.概述    字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更 多....JavaScript的核心部分提供了一组属性和方法用于通用的字符串操作,如分割字符串,改变字符串的大小写,操作子字符串等.    当前的大部分浏览器也能从强大的正则表达式获益,因为它极大地简化了大量的字符串操作任务,不过它也需要你克服一条有些陡峭的学习曲线.在这里,主要是介绍字符串本身的一些操作,正则表达式会在以后的随笔中涉及. 二

  • shell基础学习中的字符串操作、for循环语句示例

    复制代码 代码如下: #!/bin/bashmy_name="jxq" echo $my_nameecho ${my_name} # ------------------------------------# 字符串操作# ------------------------------------ # 单引号字符串的限制,双引号没有这些限制:# 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的# 单引号字串中不能出现单引号(对单引号使用转义符后也不行)name="w

  • perl中的字符串操作函数chomp与chop介绍

    chomp与chop都是用于去除字符串变量尾部的字符,但它们有各自的区别. chomp函数对变量起作用,而此变量含有字符串.如果字符串结尾有换行符,chomp可以去掉它.这基本上就是它能完成的所有功能,如下例: 复制代码 代码如下: $text="alineoftext\n      "; #也可以由<STDIN>输入 chomp($text);    #去掉换行符(\n). 它非常有用,基本上你的每一个程序都会用到它.如你将知道,这是将字符串末尾换行符去掉的最好方法.基于

  • VBS中常见字符串操作函数

    1. Split(expression, delimiter, count, compare) 返回基于 0 的一维数组,其中包含指定数目的子字符串. expression:必选.字符串表达式,包含子字符串和分隔符.如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组. delimiter:可选.用于标识子字符串界限的字符.如果省略,使用空格 (" ") 作为分隔符.如果 delimiter 为零长度字符串,则返回包含整个 expression

随机推荐