我要截取一点字符串
abcdefg这里有汉字abcd我要取的是前9位 也就是:abcdefg这但是这样取出来的是:abcdefg这里
String SubString = String1.Substring(0,9);
要怎么改呢?

解决方案 »

  1.   

    /// <summary>
      /// 从包含中英文的字符串中截取固定长度的一段,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;
       }
      }
      

  2.   

    注意要是不想要在截取过的字符串后面加“ ...”,可以用下面的代码/// <summary>
      /// 从包含中英文的字符串中截取固定长度的一段,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;
       }
      }
      

  3.   

    我是想知道怎么获取一个字符串的长度比如  012345这里有汉字abcd 的长度应该是20
    但是直接使用length得出的是15
      

  4.   

    直接用length每个汉字算做一位strInput="012345这里有汉字abcd";
    byte[] myByte = System.Text.Encoding.Default.GetBytes(strInput);strInput.Length为15
    myByte.Length为20
      

  5.   

    但我需要的是将一个字符串按不同的长度分拆到一个数组
    举个例子:strInput="012345这里有汉字abcd";
    拆分为  string[] strArray=new string[200]
    strArray[0]="012345这"         8位
          strArray[1]="里有汉字a"         9位
          strArray[2]="bcd"         3位你给的方法我不知道要怎么修改?谢谢