如何在C#控制台程序中计算字符串的显示宽度?

时间:2019-04-12 03:17:53

标签: c# .net-core console

如何在c#控制台程序(.net核心)中计算字符串的显示宽度?

var str = "hello你好こんにちは"; 
var length = str.Length; // 12
var width = Str.Width(str); // expected width: 19
public static int Width(string str)
{
    var length = 0;
    for(var i = 0; i < str.Length; i++)
    {
        byte[] bytes = Encoding.Default.GetBytes(str.Substring(i,1));
        if(bytes.Length > 1)
        {
            length += 2;
        }
        else
        {
            length += 1;
        }
    }
    return length;
}

我不能保证这会在所有语言中获得正确的结果。

那么我应该怎么做才能使该功能在所有语言中都能正常工作?就像PHP中的mb_strwidth函数一样。

0 个答案:

没有答案