【问题标题】:MonoTouch Comparing StringsMonoTouch 比较字符串
【发布时间】:2010-02-02 00:35:58
【问题描述】:

我有一个列出多种语言的应用程序。在应用程序中,我比较语言名称。

当我比较没有重音的语言名称时,它可以工作并且比较是正确的。

当我比较带有口音的语言时,它认为它们并不相同。

在这种情况下,它们不相等(但应该相等)。

Language = "Español";
MonoTouch.Foundation.NSString s = new MonoTouch.Foundation.NSString(Language);
MonoTouch.Foundation.NSString l = new MonoTouch.Foundation.NSString ("Español");

在这个例子中,它们是相等的(注意没有重音符号)。

Language = "Deutsch";
MonoTouch.Foundation.NSString s = new MonoTouch.Foundation.NSString(Language);
MonoTouch.Foundation.NSString l = new MonoTouch.Foundation.NSString ("Deutsch");

我试过文化不变比较无济于事。

我在这里缺少一些基本的东西吗?

我使用的是 MonoTouch 1.4.4

【问题讨论】:

  • 进行比较的实际代码在哪里?
  • if(s==l) {....} 这适用于 Visual Studio 中的 .NET,但不适用于 MonoTouch,这让我认为这可能是一个错误。

标签: unicode string compare xamarin.ios


【解决方案1】:

以下匹配项需要忽略重音符号:

var Language = "Español" ;
MonoTouch.Foundation.NSString s = new MonoTouch.Foundation.NSString(Language);
MonoTouch.Foundation.NSString l = new MonoTouch.Foundation.NSString ("Español");

int result = String.Compare(s,l, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    相关资源
    最近更新 更多