首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >aaaa“.StartsWith(”aaa“)返回false

aaaa“.StartsWith(”aaa“)返回false
EN

Stack Overflow用户
提问于 2013-03-21 20:33:45
回答 1查看 1.9K关注 0票数 18

如果这不是bug,那么谁能解释这种行为背后的原因呢?实际上,似乎每个奇数个字母都会返回false:

代码语言:javascript
复制
string test = "aaaaaaaaaaaaaaaaaaaa";
Console.WriteLine(test.StartsWith("aa"));
Console.WriteLine(test.StartsWith("aaa"));
Console.WriteLine(test.StartsWith("aaaa"));
Console.WriteLine(test.StartsWith("aaaaa"));
Console.WriteLine(test.StartsWith("aaaaaa"));
Console.WriteLine(test.StartsWith("aaaaaaa"));

在丹麦系统上执行时会产生以下输出:

代码语言:javascript
复制
True
False
True
False
True
False
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-21 20:36:51

这当然要归功于你当前的文化。你可能是丹麦人,其中aa被认为是字母。如果你尝试改变文化..或者这种情况下,它应该起作用。

我想我记得匈牙利文化和字母协会也有类似的行为。

看一看String StartsWith() issue with Danish text

示例:

代码语言:javascript
复制
using System;
using System.Globalization;

namespace Demo
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("da-DK");
            System.Threading.Thread.CurrentThread.CurrentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture;
            string test = "aaaaaaaaaaaaaaaaaaaa";
            Console.WriteLine(test.StartsWith("aa"));
            Console.WriteLine(test.StartsWith("aaa"));
            Console.WriteLine(test.StartsWith("aaaa"));
            Console.WriteLine(test.StartsWith("aaaaa"));
            Console.WriteLine(test.StartsWith("aaaaaa"));
            Console.WriteLine(test.StartsWith("aaaaaaa"));
        }
    }
}

这将打印操作员所声称的内容。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15547663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档