UTF-8関連のユーティリティライブラリです。
Utf8Utilityは、UTF-8関連処理の実装を詰め合わせたライブラリです。
dotnet add package Utf8Utility
dotnet add package Utf8Utility -s https://pkgs.dev.azure.com/finphie/Main/_packaging/DotNet/nuget/v3/index.json
using System;
using Utf8Utility;
using Utf8Utility.Text;
// stringまたはUTF-8のバイト配列、ReadOnlySpan{char|byte}を指定できます。
var array = new Utf8Array("abc");
var span = array.AsSpan();
// バイト数
var byteCount = array.ByteCount;
// 文字数
var length1 = array.GetLength();
var length2 = UnicodeUtility.GetLength(span);
// 空かどうか
var isEmpty = array.IsEmpty;
// 空か空白文字列かどうか
var isEmptyOrWhiteSpace1 = array.IsEmptyOrWhiteSpace();
var isEmptyOrWhiteSpace2 = UnicodeUtility.IsEmptyOrWhiteSpace(span);
// Ascii文字列かどうか
var isAscii1 = array.IsAscii();
var isAscii2 = UnicodeUtility.IsAscii(span);
// 内部配列への参照
ref var start = ref array.DangerousGetReference();
// 比較
var compareTo = array.CompareTo(array);
var compare1 = Utf8Array.CompareOrdinal(array, array);
var compare2 = Utf8Array.Compare(array, array, StringComparison.CurrentCulture);
var compare3 = UnicodeUtility.Compare(span, span, StringComparison.CurrentCulture);
var empty = Utf8Array.Empty;
var equals = array.Equals(array);
var hash = array.GetHashCode();
var utf16 = array.ToString();
_ = array.TryFormat(stackalloc char[256], out var charsWritten);
_ = array.TryFormat(stackalloc byte[256], out var bytesWritten);
array.CopyTo(stackalloc byte[256]);
_ = array.TryCopyTo(stackalloc byte[256]);
var chars = array.GetChars(stackalloc char[256]);
_ = array.TryGetChars(stackalloc char[256], out var charsWritten);
// Utf8ArrayをキーとしたDictionaryです。
var dict = new Utf8ArrayDictionary<int>();
// キー指定にはUtf8Arrayの他にReadOnlySpan{char|byte}を指定できます。
_ = dict.TryGetValue(array, out var result);
ref var dictStart = ref dict.GetValueRefOrNullRef(array);
_ = dict.TryAdd(array, 1);
dict.Clear();
- .NET 8
- .NET 7
- .NET Standard 2.1
finphie
MIT
このプロジェクトでは、次のライブラリ等を使用しています。
- FluentAssertions
- Microsoft.NET.Test.Sdk
- Newtonsoft.Json
- NuGet.Frameworks
- xunit
- xunit.runner.visualstudio
- DocumentationAnalyzers
- IDisposableAnalyzers
- Microsoft.CodeAnalysis.NetAnalyzers
- Microsoft.VisualStudio.Threading.Analyzers
- StyleCop.Analyzers