public void BytesAndAsciiStringTest() { var bytes = new byte[] { 65, 66, 67 }; var asciiString = AsciiConv.BytesToAsciiString(bytes); asciiString.ShouldBe("ABC"); var byteArray = AsciiConv.AsciiStringToBytes(asciiString); byteArray.Length.ShouldBe(3); byteArray[0].ShouldBe((byte)65); byteArray[1].ShouldBe((byte)66); byteArray[2].ShouldBe((byte)67); }
public static string CastToString(this byte[] bytes) { return(AsciiConv.BytesToAsciiString(bytes)); }
/// <summary> /// 変換の種類を指定して、文字を変換します。 /// </summary> /// <param name="value">変換対象の文字列。</param> /// <param name="kana">かなの変換の種類。</param> /// <param name="ascii">ASCII 文字の変換の種類。</param> /// <returns>変換後の文字列。</returns> public static string Convert(this string value, KanaConv kana = KanaConv.None, AsciiConv ascii = AsciiConv.None) { if (!Enum.IsDefined(typeof(AsciiConv), ascii)) { throw new ArgumentException("The value is not defined.", nameof(ascii)); } if (!Enum.IsDefined(typeof(KanaConv), kana)) { throw new ArgumentException("The value is not defined.", nameof(kana)); } var current = value; if (ascii == AsciiConv.ToNarrow) { current = current.AsciiToNarrow(); } else if (ascii == AsciiConv.ToWide) { current = current.AsciiToWide(); } if (kana.HasFlag(KanaConv.KatakanaToHiragana)) { current = current.KatakanaToHiragana(); } if (kana.HasFlag(KanaConv.HalfKatakanaToHiragana)) { current = current.HalfKatakanaToHiragana(); } if (kana.HasFlag(KanaConv.HiraganaToKatakana)) { current = current.HiraganaToKatakana(); } if (kana.HasFlag(KanaConv.HalfKatakanaToKatakana)) { current = current.HalfKatakanaToKatakana(); } return(current); }