比如说有一串字符
<b><p><font....>我是中国人</font></p></b><a>日本人是猪</a>我要取第一个字到 地8个字   不能把标签去除因为要控制样式
得到的结果应该是:
<b><p><font....>我是中国人</font></p></b><a>日本人不知道如何实现.高手帮忙啊!

解决方案 »

  1.   

    有两种办法,一种是按char搜索,为代码:bool seehtmlheader = false;
    int truelength = 0;
    string result = "";
    for(int i = 0 ;i < str.length ; i++)
    {
        char nowchar = str[i];
        if(nowchar == '<'){
            seehtmlheader = true;
            contuniue;
        }
        if(seehtmlheader  == true && nowchar == '>'){
            seehtmlheader = false;
            contuniue;
        }
        if(seehtmlheader)
             contuniue;
        
        truelength ++;
        if(truelength  == 8)
            result = str.SubString(0,i);
    }
      

  2.   

    还有一种是先去除HMTL,然后找到第八个字符,再逆向搜索前面包含几个和这个字符相同的字符,然后可以进行真实截取
      

  3.   

    对了第一种方法
     if(truelength  == 8)
            result = str.SubString(0,i); 
    取到结果,别忘记,break; if(truelength  == 8){
            result = str.SubString(0,i); 
        break;
    }
      

  4.   

    用SgmlReader读为XmlDocument,然后一个一个Node去累加字数,直到够了为止,那么前面这些Node就是你要的。
      

  5.   

    可不可以把读取出来的内容给一个div 用div的innerHTML来解析这段html代码,再用程序截div里的内容
      

  6.   


    public static string cutString(string str, int len)
        {
            if (System.Text.Encoding.Default.GetByteCount(str) > len)
            {
                return System.Text.Encoding.Default.GetString(System.Text.Encoding.Default.GetBytes(str), 0, len);
            }
            else
            {
                return str;
            }
        }