相关疑难解决方法(0)

大写的utf8字符总是与它们的小写变体字节数相同吗?

显然拉丁字母表确实如此.但我在概念意义上,跨语言和Unicode规范问这个问题.

实际上,这是为了比较两个字符串.如果您已经知道它们在所有语言中的字节数不同 - 您是否可以认为这足以保证它们不是同一字符串的不同"套管"版本?

unicode utf-8 case-insensitive

8
推荐指数
2
解决办法
997
查看次数

为什么C#.ToLower不会更改字符串的ASCII值?

我试图创建一个方法来查找字符串中重复字符的数量.因此,例如,DuplicateCount("aabbcde")将返回2并且DuplicateCount("aabBcde")还将返回2.我首先想到创建此方法是将整个字符串转换为小写,然后根据其ASCII值计算字符出现的次数.所以这是我的代码:

public static int DuplicateCount(string str)
{
    int[] buffer = new int[128]; //128 possible ASCII characters
    string lower = str.ToLower();
    int dups = 0;

    for (int i = 0; i < str.Length; i++)
    {
        int num = (int)str[i];
        buffer[num]++; //increase 
        if (buffer[num] == 2)
        {
            dups++;
        }
    }
    return dups;
}
Run Code Online (Sandbox Code Playgroud)

当字符串包含大写字符时,此方法将不起作用.此方法不起作用的原因是因为str.ToLower()调用不会更改字符的ASCII值,即使字符串本身更改为全部小写.有谁知道为什么会这样?你会怎么解决它?

c# string

-2
推荐指数
1
解决办法
230
查看次数

标签 统计

c# ×1

case-insensitive ×1

string ×1

unicode ×1

utf-8 ×1