比方说我现在
 string b=@"1|2|3|4|5|6|7|8|9|10|11|12|13|14|20|21";
 string a="1"; b.LastIndexOf(a);
或者
 b.IndexOf(a);
 
 我要让他找到1但不会找到11/12/13/14/21等处。而查找11时就只会找到11。总之是查找得不准确!

解决方案 »

  1.   

    你可以将string b中小于10的换成01、02样式。
    然后将你取的数字做成转换。
    if(int.parse(a.tostring())<10)
    {
       a = 0+a;
    }
    这样可以了。
      

  2.   

    string b="1|2|3|4|5|6|7|8|9|10|11|12|13|14|20|21";
    string a="20"; int i = b.IndexOf(a);
    int j = a.Length;
    int k = b.Length; if((i-1) < 0 ||((i-1) >= 0 && b.Substring(i-1,1) == "|" ))
    {
    if( (i+j) >= k || ((i+j) < k && b.Substring(i+j,1) == "|" ))
    {
    return i;
    }
    else
    {
    return -1;
    }
    }
    else
    {
    return -1;
    }
      

  3.   

    string [] arr=s.split('|');
    if(Array.IndexOf(arr,"1")>-1)
          //出现 1
    else  
        没有
      

  4.   

    用正则应该这样:Regex rg=new Regex(@"\b"+a+@"\b");
    rg.IsMatch(b);
      

  5.   

    string b=@"1|2|3|4|5|6|7|8|9|10|11|12|13|14|20|21";
    string a="1";string []strings = b.split((char) '|');
    foreach(string aString in strings)
    {
      if (aString == a) return true;
    }return false; // 没有找到符合条件的
      

  6.   

    Firist split then,  IndexOf
      

  7.   

    xianbin(悠游浪子)  
    我同意用这种写发!!
      

  8.   

    string b=@"1|2|3|4|5|6|7|8|9|10|11|12|13|14|20|21";
     string a="1";b = "|" + b + "|";
    b.indexOf("|" + a + "|" );