已知QQ里含有tst[1]这个字符串string[] tst = Tst.Split('=');
int c=QQ.IndexOf(tst[1]); 
为什么这里的c输出是-1??

解决方案 »

  1.   

    调试
    拿到Tst的值
    再得到tst QQ的值
      

  2.   


    说明 tst[1] 不是 QQ 的子串。 
      

  3.   

    这样看看:
    Console.WriteLine("QQ=\"{0}\", tst[1]=\"{1}\"", QQ, tst[1]);
      

  4.   

    说明 tst[1] 不是 QQ 的子串。
      

  5.   


    看你写的 ,哎呀。有意思哦 。你写的“已知QQ里含有tst[1]这个字符串”
    那么请问 ,int c =QQ.IndexOf (tst[1]) ;  怎么可能会是-1呢 。你是不是想 split  tst[1] 啊 。 可是上面你写的是 Tst 
    然后还有重新定义了下tst数组  string[] tst = Tst.Split('=');
    你是不是写错了。
     
      

  6.   

    是不是想写成下面这样。
    string[] t = tst[1].Split('=');
    int c = QQ.IndexOf (t[1]);
      

  7.   

    Tst的值是什么呢?比如x1se=123=48546=87765
    那么tst[1]="123"
    至于indexof你就自己算咯
      

  8.   

    tst[1]值不包含在QQ里面
      

  9.   

    是啊,你调试看看tst[1]到底是什么啊,还有这个Tst字符串到底是什么呢,这里面有没有包含QQ中的字符串呢,如果不完全,肯定会是 -1 的。
      

  10.   

    如果QQ里有tst[1]的字符串,不应该是这个结果调试看看吧
      

  11.   

    tst[1] 不是 QQ 的子串。
      

  12.   

    把QQ和tst[1]的值都贴出来看看
      

  13.   

    你先判断你分割成数组后 数组是不是null
      

  14.   

    indexof(字符串):查找字串中指定字符或字串首次出现的位置,返首索引值
            string Tst = "a=b+1";
                string QQ = "b";
                string[] tst = Tst.Split('=');
                int c = QQ.IndexOf(tst[1].ToString()); 
                
    这样的话:B+1是作为一整个字符串在indexof中查找。
    如果要指定的话,str1.IndexOf(tst[1].ToString()),start,end);//可以。 string Tst = "a=b+1";
                string QQ = "b+1";
                string[] tst = Tst.Split('=');
                int c = QQ.IndexOf(tst[1].ToString()); 
    首次出现的整个字符串。
      

  15.   

    建议首先看看Tst里面是否含有‘=’。
      

  16.   

    tst[1] 的值是什么, QQ里是否有 tst[1] 的值,把详细点代码贴出来就得了,等于负一是因为 tst[1] 的值不在qq里
      

  17.   

    indexOf 返回类型是1和-1,1表示找到,-1表示没找到