日期:2014-05-18  浏览次数:20925 次

给个思路:如何判断某个指定的字符,在字符串所在的位置


如上图

判断0在字符串"3561827904”的位置

如果是处于前三位,那么在0对应列,即蓝色单元格标记为 a
如果是处于中间四位, 那么在0对应列,即蓝色单元格标记为 b
如果是处于最后三位, 那么在0对应列,即蓝色单元格标记为 c

给个思路,谢谢

------解决方案--------------------
C# code
string str = "3561827904";
string flag = "0";
int index = str.IndexOf(flag);
string result = index < 3 ? "a" : (index < 7 ? "b" : "c");

------解决方案--------------------
探讨
string flag = Convert.ToString(gzdGrid[0, c]); 这样写,OK

string flag = (string)(gzdGrid[0, c]);这样写,报错

是什么原因呢?

------解决方案--------------------
string flag = (string)(gzdGrid[0, c]);
这种写法本身是没问题的,但有个前提条件,gzdGrid 那个单元格里的值真的是 string 类型,如果是别的类型,就会报错,而 Convert.ToString 会对类型进行检查从而选择转换方式,可以在转换之前加上这样的代码
object obj = gzdGrid[0, c];
string typeName = obj != null ? obj.GetType().Name : "NULL";
断点到第二行,单步执行过去,看看 typeName 值是什么。