丹麦语文本的 String StartsWith() 问题

2023-12-01

谁能解释这种行为?

var culture = new CultureInfo("da-DK");
Thread.CurrentThread.CurrentCulture = culture;
"daab".StartsWith("da"); //false

我知道它可以通过指定来修复StringComparison.InvariantCulture。但我只是对这种行为感到困惑。

我还知道在丹麦语不区分大小写的比较中,“aA”和“AA”不被认为是相同的,请参阅http://msdn.microsoft.com/en-us/library/xk2wykcz.aspx。这解释了这一点

String.Compare("aA", "AA", new CultureInfo("da-DK"), CompareOptions.IgnoreCase) // -1 (not equal)

这与第一个代码片段的行为有关吗?


这里有一个测试说明了这个问题,daab og dåb(在古代和现代语言中分别是同一个词)意味着洗礼/洗礼。

public class can_handle_remnant_of_danish_language
{
    [Fact]
    public void daab_start_with_då()
    {
        var culture = new CultureInfo("da-DK"); Thread.CurrentThread.CurrentCulture = culture;
        Assert.True("daab".StartsWith("då")); // Fails
    }

    [Fact]
    public void daab_start_with_da()
    {
        var culture = new CultureInfo("da-DK"); Thread.CurrentThread.CurrentCulture = culture;
        Assert.True("daab".StartsWith("da")); // Fails
    }

    [Fact]
    public void daab_start_with_daa()
    {
        var culture = new CultureInfo("da-DK"); Thread.CurrentThread.CurrentCulture = culture;
        Assert.True("daab".StartsWith("daa")); // Succeeds
    }

    [Fact]
    public void dåb_start_with_daa()
    {
        var culture = new CultureInfo("da-DK"); Thread.CurrentThread.CurrentCulture = culture;
        Assert.True("dåb".StartsWith("daa")); // Fails
    }

    [Fact]
    public void dåb_start_with_da()
    {
        var culture = new CultureInfo("da-DK"); Thread.CurrentThread.CurrentCulture = culture;
        Assert.True("dåb".StartsWith("da")); // Fails
    }

    [Fact]
    public void dåb_start_with_då()
    {
        var culture = new CultureInfo("da-DK"); Thread.CurrentThread.CurrentCulture = culture;
        Assert.True("dåb".StartsWith("då")); // Succeeds
    }
}

根据我对语言的理解,上述所有测试都应该成功,我是丹麦人! 不过我没有语法学位。 :-)

对我来说似乎是一个错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

丹麦语文本的 String StartsWith() 问题 的相关文章

随机推荐

  • Python 3 异常处理抛出错误

    我上周开始学习 python 但我无法弄清楚这里出了什么问题 def add x y Adds 2 numbers and returns the result return x y def sub x y Subtracts 2 numb
  • PHP 中的详细正则表达式?

    在 php net 上搜索我找不到任何支持详细的正则表达式在 PHP 中 这是我不知道如何搜索它的错 还是php没有实现它的错 如果php缺少这个功能 除了将正则表达式分成更小的段之外 还有其他方法来注释正则表达式吗 您还可以在正则表达式中
  • 将大型文本 (xyz) 数据库拆分为 x 个相等的部分

    我想拆分一个大型文本数据库 约 1000 万行 我可以使用类似的命令 sed i e 4 s dB e 4 s Best unit Best Unit e 1 3 d cygdrive c Radio Mobile Output TRC T
  • TensorFlow 中 sigmoid 后跟交叉熵和 sigmoid_cross_entropy_with_logits 有什么区别?

    当尝试使用 sigmoid 激活函数获取交叉熵时 两者之间存在差异 loss1 tf reduce sum p tf log q 1 loss2 tf reduce sum tf nn sigmoid cross entropy with
  • Mysql 5.5.10 - Mac 10.6.x - 自动启动

    我正在尝试在我的 mac pro 上自动启动 mysql 5 5 10 社区服务器 gpl 我读过这个论坛上的几个帖子 我仍然感到困惑 因为这些线程引用了一个文件 Library StartupItems MySQLCOM 我好像没有这个文
  • 无法将自定义日志添加到 Log Analytics

    大家好 我无法添加自定义日志日志分析 gt 高级设置 gt 数据 gt 自定义日志 尽管在连接的资源中显示我的计算机已连接 我错过了什么吗 PS 我使用的是azure Trail帐户 目前 自定义日志处于预览状态 您需要先在 OMS Por
  • sum 函数返回的结果与显式循环不同

    我正在将 f77 代码转换为 f90 代码 部分代码需要对 3d 矩阵的元素求和 在 f77 中 这是通过使用 3 个循环 通过外部 中间 内部索引 来完成的 我决定使用 f90 内在和 3 次 来完成此操作 令我惊讶的是答案不同 我正在使
  • 如何在 iOS gui 自动化中检查元素属性?

    所有 UI 自动化examples我见过使用标准组件 可以使用 JavaScript API 检查其状态value 方法 这有点限制 假设您想检查颜色或 alpha 值等 如何检查视图的属性 一个例子 点击某个元素应该使其 被选中 我想点击
  • 如何将 JSON 传递到 Azure 函数并在 Azure 数据工厂 V2 中嵌入动态内容

    在 ADFv2 中 我查找日期并将其传递给 Azure 函数 我可以像这样传递数据 activity GetLastDateProcessed output firstRow LastDateProcessed 但是 如果我将其嵌入到 JS
  • 在现有状态转换期间无法更新

    当我加载流星项目时 我的浏览器不断崩溃 如果我注释掉 我只能避免浏览器崩溃this setState input 36 currentApp input 36 在 App jsx 文件中 有人可以告诉我如何修复我的代码 以便项目可以加载而不
  • Python 间隔三角形

    我应该编写一个最终结果如下的程序 我已经为常规代码编写了代码 但我不确定如何将空格合并到其中 def triangle i t 0 if i 0 return 0 else print t 1 i 2 1 return triangle i
  • 比较 Google 电子表格上的行

    我想在同一个电子表格的两个不同工作表中识别相同的行 我尝试了下面的代码 它不起作用 function getMyEqualRows var ss SpreadsheetApp getActiveSpreadsheet var sheet1
  • 向 Android 可穿戴设备发送数据

    我正在尝试将字符串数组从手机发送到我的穿戴设备 我在手机上创建了一项服务 该服务应该使用以下代码发送数据 public class SendDataService extends Service private static final S
  • PyGTK隐藏光标

    问题很简单 如何使用 PyGTK 隐藏活动窗口上的光标 这是我为学习这一点而制作的一个基本应用程序 usr bin env python import gtk class app def init self window gtk Windo
  • 运行默认的 Gluon 项目后出错 (: dex FAILED)

    我下载了 Netbeans 的 Gluon 插件 以将 JavaFX 应用程序部署到 Android 它在桌面上成功运行 但是当我执行android任务 它会抛出错误 Executing gradle android compileJava
  • 如何读取我的 BLE 设备的所有特性值?

    我正在使用 Android Studio 构建一个应用程序 可以从设备 BLE 读取值 该设备有 4 个服务 第四项服务有3个特点 我想了解第四项服务的所有特征 该设备可以发送更多信息 因此我希望应用程序可以存储从设备 BLE 到达的所有信
  • 获取 ASP.NET vNext 中的当前 MethodBase

    我正在将开源库从常规 NET 4 Client Profile 移植到 DNX Core 5 0 有相当多的库更改 属性或方法被移动或完全删除 我看过这个答案但它在我的情况下不起作用 因为该方法已被删除 问题之一我有一段代码MethodBa
  • vimomnicppcomplete 模式未找到

    我在我的电脑上安装了vim7 3 在Windows 7下 我想使用自动完成插件 我进行了大量搜索 发现 Omnicppcomplete 是最适合的 所以我遵循了这个教程 安装 OmniCppComplete 插件 我的 vimrc 配置文件
  • 如何仅使用 U-SQL 和文件中的某些字段将大文件分区为文件/目录?

    我有一个非常大的 CSV 其中每一行都包含客户和商店 ID 以及交易信息 当前的测试文件约为 40 GB 大约 2 天 因此对于选择查询的任何合理返回时间来说 分区是绝对必须的 我的问题是 当我们收到一个文件时 它包含多个商店的数据 我想使
  • 丹麦语文本的 String StartsWith() 问题

    谁能解释这种行为 var culture new CultureInfo da DK Thread CurrentThread CurrentCulture culture daab StartsWith da false 我知道它可以通过