我在 C# 中进行了大量的字符串操作,并且确实需要将字符串每个字符存储一个字节。这是因为我需要在内存中同时存储千兆字节的文本,这会导致内存不足的问题。我确信该文本永远不会包含非 ASCII 字符,因此就我的目的而言,System.String 和 System.Char 将所有内容存储为每个字符两个字节的事实既不必要又是一个真正的问题。
我即将开始编写我自己的 CharAscii 和 StringAscii 类 - 字符串类基本上将其数据保存为 byte[],并公开与 System.String 类似的字符串操作方法。然而,要做一些看起来非常标准的问题似乎需要做很多工作,所以我在这里发帖是为了检查是否还没有更简单的解决方案。例如,是否有某种方法可以使 System.String 在内部将数据存储为我没有注意到的 UTF8,或者以其他方式解决该问题?
那么,您可以创建一个包装器,以 UTF-8 字节的形式检索数据,并根据需要将片段转换为 System.String,然后反之亦然,将字符串推回内存。 Encoding 类将在这里帮助您:
var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(myString);
var myReturnedString = utf8.GetString(utfBytes);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)