问题描述
对于一下字符串:expertise[ˌekspə'ti:z];n.专门技能;专门知识expedition[ˌekspi'ditʃən];n.(为特定目的组织的)旅行,出行,远征;远征队探险队,考察队,迅速instrumental[奿nstru'mentəl];a有帮助的;有作用的;仪器的,器械的,乐器的使用如下代码:if(s.Contains("[")){try{intwordEndIndex=s.IndexOf("[");intproEndIndex=s.IndexOf(";");intkindEndIndex=s.IndexOf(".");stringword=s.Substring(0,wordEndIndex+1);stringpro=s.Substring(wordEndIndex,proEndIndex+1-wordEndIndex);stringkind=s.Substring(proEndIndex,kindEndIndex+1-proEndIndex);stringmeaning=s.Substring(kindEndIndex,s.Length-1-kindEndIndex);Console.WriteLine(word+""+pro+""+kind+""+meaning);}catch(System.Exceptionex){sw.WriteLine("第"+i+"行出现问题:"+ex.ToString());}}
s.contains("[")返回值为true但是在s.indexOf("[")返回值却是-1这是为什么?
解决方案
解决方案二:
字符串里含有Unicode字符,那个逗号就是。IndexOf重载方法里有IndexOf(Char)跟IndexOf(String),这个你可以到MSDN看一下:https://msdn.microsoft.com/zh-cn/library/system.string.indexof.aspx你用了IndexOf(String)检索含Unicode字符的字符串,换用IndexOf(Char)就正常了。改成单引号,当Char字符检索:s.IndexOf('s')
解决方案三:
最后一个看上去有乱码?
解决方案四:
-1表示没找到这个字符