我尝试使用此处示例中给出的IndexOf
:
https://msdn.microsoft.com/en-us/library/k8b1470s(v=vs.110).aspx
如果向下滚动,则显示示例:
string s1 = "ani\u00ADmal";
string s2 = "animal";
// Find the index of the soft hyphen.
Console.WriteLine(s1.IndexOf("\u00AD"));
Console.WriteLine(s2.IndexOf("\u00AD"));
我正在尝试从Main(string[] args)
执行该操作,并且我收到编译错误,IndexOf
具有文化感知并且缺少字符串比较参数。"我已导入using System;
和using System.IO;
,我在Mac上使用Visual Studio。我错过了什么吗?
编辑:好的,可以在"备注"
下找到问题的解释。此方法执行一个单词(区分大小写且对文化敏感) 使用当前文化进行搜索。搜索从第一个开始 此实例的字符位置并一直持续到最后一个 角色位置。
字符集包括可忽略的字符,它们是字符 在执行语言或文化敏感时不考虑 比较。在文化敏感的搜索中,如果值包含 可忽略的字符,结果相当于用它搜索 字符已删除。如果值仅包含一个或多个可忽略的值 字符,theIndexOf(String)方法始终返回0(零) 表示匹配是在当前开头找到的 实例。在以下示例中,使用IndexOf(String)方法 找到三个子串(一个软连字符(U + 00AD),一个软连字符 接下来是" n"和一个软连字符,然后是两个字符串中的" m")。 只有一个字符串包含一个软连字符。如果示例运行 在.NET Framework 4或更高版本中,在每种情况下,因为软 连字符是一个可忽略的字符,结果就像是一样 软连字符未包含在值中。寻找软时 仅限连字符,该方法返回0(零)以指示它已找到 字符串开头的匹配。
答案 0 :(得分:2)
我假设您正在使用的.NET Framework的实现没有那么重载。尝试通过添加字符串比较来使用它建议的IndexOf(string, StringComparison)
重载:
string s1 = "ani\u00ADmal";
string s2 = "animal";
// Find the index of the soft hyphen.
Console.WriteLine(s1.IndexOf("\u00AD", StringComparison.CurrentCulture));
Console.WriteLine(s2.IndexOf("\u00AD", StringComparison.CurrentCulture));