' このソースコードは blanco Frameworkによって自動生成されています。
Imports System

Namespace blanco.sample.stringconverter
    ''' <summary>全角ひらがな→全角カタカナの文字列変換のサンプル。blancoStringConverterの実装には影響しません。</summary>
    Public Class SampleZenHiragana2KatakanaStringConverter

        ''' <summary>文字列置換定義。</summary>
        Public STRING_CONVERT_DEF(,) As String = {{ "う゛", "ヴ" }, { "ぁ", "ァ" }, { "あ", "ア" }, { "ぃ", "ィ" }, { "い", "イ" }, { "ぅ", "ゥ" }, { "う", "ウ" }, { "ぇ", "ェ" }, { "え", "エ" }, { "ぉ", "ォ" }, { "お", "オ" }, { "か", "カ" }, { "が", "ガ" }, { "き", "キ" }, { "ぎ", "ギ" }, { "く", "ク" }, { "ぐ", "グ" }, { "け", "ケ" }, { "げ", "ゲ" }, { "こ", "コ" }, { "ご", "ゴ" }, { "さ", "サ" }, { "ざ", "ザ" }, { "し", "シ" }, { "じ", "ジ" }, { "す", "ス" }, { "ず", "ズ" }, { "せ", "セ" }, { "ぜ", "ゼ" }, { "そ", "ソ" }, { "ぞ", "ゾ" }, { "た", "タ" }, { "だ", "ダ" }, { "ち", "チ" }, { "ぢ", "ヂ" }, { "っ", "ッ" }, { "つ", "ツ" }, { "づ", "ヅ" }, { "て", "テ" }, { "で", "デ" }, { "と", "ト" }, { "ど", "ド" }, { "な", "ナ" }, { "に", "ニ" }, { "ぬ", "ヌ" }, { "ね", "ネ" }, { "の", "ノ" }, { "は", "ハ" }, { "ば", "バ" }, { "ぱ", "パ" }, { "ひ", "ヒ" }, { "び", "ビ" }, { "ぴ", "ピ" }, { "ふ", "フ" }, { "ぶ", "ブ" }, { "ぷ", "プ" }, { "へ", "ヘ" }, { "べ", "ベ" }, { "ぺ", "ペ" }, { "ほ", "ホ" }, { "ぼ", "ボ" }, { "ぽ", "ポ" }, { "ま", "マ" }, { "み", "ミ" }, { "む", "ム" }, { "め", "メ" }, { "も", "モ" }, { "ゃ", "ャ" }, { "や", "ヤ" }, { "ゅ", "ュ" }, { "ゆ", "ユ" }, { "ょ", "ョ" }, { "よ", "ヨ" }, { "ら", "ラ" }, { "り", "リ" }, { "る", "ル" }, { "れ", "レ" }, { "ろ", "ロ" }, { "ゎ", "ヮ" }, { "わ", "ワ" }, { "ゐ", "ヰ" }, { "ゑ", "ヱ" }, { "を", "ヲ" }, { "ん", "ン" } }

        ''' <summary>文字列変換定義に従い、文字列を変換します。</summary>
        ''' <param name="argCheck">変換対象の文字列。</param>
        ''' <returns>文字列変換定義にしたがって変換された文字列。変換定義にひとつも合致しない場合には元の文字列が戻ります。</returns>
        Public Function convert(argCheck As String) As String
            If (argCheck Is Nothing) Then
                Throw New ArgumentException("メソッド[convert]のパラメータ[argCheck]にnullが与えられました。しかし、このパラメータにnullを与えることはできません。")
            End If

            Dim wrkString As String = ""
            For index As Integer = 0 To argCheck.length - 1 Step 0
                Dim look As String = argCheck.Substring(index)
                Dim isFound As Boolean = false
                For indexDef As Integer = 0 To STRING_CONVERT_DEF.length -1
                    Dim wrkStrComp As String = look
                    If (look.length > STRING_CONVERT_DEF(indexDef, 0).Length) Then
                        wrkStrComp = wrkStrComp.substring(0, STRING_CONVERT_DEF(indexDef, 0).Length)
                    End If
                    If (wrkStrComp = STRING_CONVERT_DEF(indexDef, 0)) Then
                        wrkString += STRING_CONVERT_DEF(indexDef, 1)
                        index += STRING_CONVERT_DEF(indexDef, 0).Length
                        isFound = true
                        Exit For
                    End If
                Next
                If (isFound = False) Then
                    wrkString += argCheck.Substring(index, 1)
                    index = index + 1
                End If
            Next

            Return wrkString
        End Function
    End Class
End Namespace
