c# string.IndexOf()的问题

rexbean 2015-07-23 09:28:02
对于一下字符串:
expertise [ˌekspə'ti:z] ;n.专门技能;专门知识
expedition [ˌekspi'ditʃən] ;n.(为特定目的组织的) 旅行,出行,远征;远征队 探险队,考察队,迅速
instrumental [奿nstru'mentəl] ;a 有帮助的;有作用的; 仪器的,器械的, 乐器的
使用如下代码:

if (s.Contains("["))
{
try
{
int wordEndIndex = s.IndexOf("[");
int proEndIndex = s.IndexOf(";");
int kindEndIndex = s.IndexOf(".");
string word = s.Substring(0, wordEndIndex+1);
string pro = s.Substring(wordEndIndex, proEndIndex+1 - wordEndIndex);
string kind = s.Substring(proEndIndex, kindEndIndex+1 - proEndIndex);
string meaning = s.Substring(kindEndIndex, s.Length - 1 - kindEndIndex);
Console.WriteLine(word + " " + pro + " " + kind + " " + meaning);
}
catch (System.Exception ex)
{

sw.WriteLine("第"+i+"行出现问题:"+ex.ToString());

}

}

s.contains("[")返回值为true 但是在s.indexOf("[")返回值却是-1这是为什么?
...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Justin-Liu 2015-07-24
  • 打赏
  • 举报
回复
-1表示没找到这个字符
threenewbee 2015-07-23
  • 打赏
  • 举报
回复
最后一个看上去有乱码?
ajianchina 2015-07-23
  • 打赏
  • 举报
回复
字符串里含有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')

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧