String

Public Class StringUtil


#Region " 金額文字列の構造 "
        '********************************************************************************
        '  関数名: CommaFormat  
        '  作成者:  Huxudong  
        '  作成日:  2006/09/25
        '  説明:    金額文字列の構造
        '  引数:    金額文字
        '  戻り値:  構造の金額文字
        '********************************************************************************
        Public Shared Function CommaFormat(ByVal strComma As String) As String
            Dim iFormat As Long
            Dim strLast As String

            If IsNotNull(strComma) Then
                If strComma.IndexOf(".") = -1 Then
                    strLast = strComma
                Else
                    strLast = strComma.Substring(0, strComma.IndexOf("."))
                End If

                iFormat = CType(strLast, Long)
                strComma = iFormat.ToString("###,###,##0") & strComma.Substring(strComma.IndexOf("."))
            End If
            Return strComma
        End Function
#End Region

#Region " 期日文字列の構造 "
        '********************************************************************************
        '  関数名: DateFormat  
        '  作成者:  lijun  
        '  作成日:  2006/12/19
        '  説明:    期日文字列の構造
        '  引数:    期日文字
        '  戻り値:  構造の期日文字
        '********************************************************************************
        Public Shared Function DateFormat(ByVal strDate As String) As String
            Dim localdate As Date = New Date
            Dim year As Integer
            Dim month As Integer
            Dim day As Integer
            Dim strLast As String = ""
            Try
                If IsNotNull(strDate) AndAlso strDate.Length = 8 Then
                    year = CInt(strDate.Substring(0, 4))
                    month = CInt(strDate.Substring(4, 2))
                    day = CInt(strDate.Substring(6, 2))
                    localdate = New Date(year, month, day)
                    strLast = localdate.ToString("yyyy/MM/dd(ddd)")
                End If
                Return strLast
            Catch ex As Exception
                '***********************************************************************
                '  To do list
                '  Add System log here pls
                '  Thanks
                '************************************************************************
                Return ""
            End Try
        End Function
#End Region

#Region " 取り除左端の空欄 "
        '********************************************************************************
        '  関数名: TrimLeft  
        '  作成者:  Huxudong  
        '  作成日:  2006/09/25
        '  説明:    取り除左端の空欄
        '  引数:    文字
        '  戻り値:  構造の文字
        '********************************************************************************
        Public Shared Function TrimLeft(ByVal strInput As String) As String
            If IsNotNull(strInput) Then
                strInput = strInput.TrimStart()
            End If
            Return strInput
        End Function
#End Region

#Region " 取り除右端の空欄 "
        '********************************************************************************
        '  関数名: TrimRight  
        '  作成者:  Huxudong  
        '  作成日:  2006/09/25
        '  説明:    取り除右端の空欄
        '  引数:    文字
        '  戻り値:  構造の文字
        '********************************************************************************
        Public Shared Function TrimRight(ByVal strInput As String) As String
            If IsNotNull(strInput) Then
                strInput = strInput.TrimEnd()
            End If
            Return strInput
        End Function
#End Region

#Region " ターゲット全体から、空白文字をすべて削除します "
        '********************************************************************************
        '  関数名: TrimAll  
        '  作成者:  Huxudong  
        '  作成日:  2006/09/25
        '  説明:    ターゲット全体から、空白文字をすべて削除します
        '  引数:    文字
        '  戻り値:  構造の文字
        '********************************************************************************
        Public Shared Function TrimAll(ByVal strInput As String) As String
            If IsNotNull(strInput) Then
                strInput = strInput.Trim()
            End If
            Return strInput
        End Function
#End Region

#Region " Nullの判断 "
        '
        Public Shared Function IsNotNull(ByVal strInput As String) As Boolean

            Dim bCheck As Boolean = False
            If (Not strInput Is Nothing) AndAlso (strInput <> "") AndAlso (strInput.Trim() <> "") Then
                bCheck = True
            End If
            Return bCheck
        End Function
#End Region

#Region "ターゲット文字列内に検索対象文字数がいくつあるかをカウントする"

                Public Shared Function GetSubStrCount(ByVal strTarget As String, _
                                                 ByVal strSerch As String) As Integer
            If strTarget = Nothing Then
                strTarget = ""
            End If
            Dim strEnum As IEnumerator = strTarget.GetEnumerator
            Dim subStr As String
            Dim count As Integer = 0
            While strEnum.MoveNext
                '部分文字列を取得
                subStr = CType(strEnum.Current, String)
                '検索文字ならカウントアップ
                If subStr = strSerch Then
                    count += 1
                End If
            End While
            Return count
        End Function
#End Region

#Region "ターゲット文字列の最初の文字が置換対象文字の場合置換する"

               Public Shared Function ReplaceFirstString(ByVal strTarget As String, _
                                                      ByVal strOld As String, _
                                                      ByVal strNew As String) As String
            If strTarget = Nothing Then
                strTarget = ""
            End If
            If strTarget <> "" Then
                Dim firstStr As String = strTarget.Substring(0, 1)
                If firstStr = strOld Then
                    strTarget = strNew & strTarget.Substring(1)
                End If
            End If
            Return strTarget
        End Function
#End Region

#Region "ターゲット文字列の最後の文字が置換対象文字の場合置換する"

               Public Shared Function ReplaceLastString(ByVal strTarget As String, _
                                                        ByVal strOld As String, _
                                                        ByVal strNew As String) As String
            If strTarget = Nothing Then
                strTarget = ""
            End If
            If strTarget <> "" Then
                Dim lastStr As String = strTarget.Substring(strTarget.Length - 1, 1)
                If lastStr = strOld Then
                    strTarget = strTarget.Substring(0, strTarget.Length - 1) & strNew
                End If
            End If
            Return strTarget
        End Function
#End Region

#Region "ターゲットに出現する指定 String 文字をすべて、別に指定した String 文字に置換します"

              Public Shared Function ReplaceAllStr(ByVal strTarget As String, _
                                           ByVal strOldValue As String, _
                                           ByVal strNewValue As String) As String
            If strTarget = Nothing Then
                strTarget = ""
            End If
            Return strTarget.Replace(strOldValue, strNewValue)
        End Function

#End Region

#Region "文字列のByte長を取得する"

              Public Shared Function LenB(ByVal strTarget As String) As Integer
            If Not strTarget Is Nothing Then
                Dim bytes() As Byte
                bytes = System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes(strTarget)
                Return bytes.Length
            Else
                Return 0
            End If
        End Function

#End Region

#Region "文字列の自定長を取得する"

                Public Shared Function SubString(ByVal strTarget As String, ByVal iLengthByByte As Integer) As String
            If strTarget Is Nothing Then
                Return Nothing
            Else

                If LenB(strTarget) > iLengthByByte Then
                    Dim iChar As Char
                    Dim bytes() As Byte
                    Dim i As Integer = 0
                    Dim strReturn As New StringBuilder
                    Dim iLengthChk As Integer = 0
                    Dim strTemp As String = ""
                    While i < strTarget.Length
                        iChar = strTarget.Chars(i)
                        strTemp = iChar.ToString
                        bytes = System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes(iChar)
                        iLengthChk = iLengthChk + bytes.Length
                        If iLengthChk > iLengthByByte Then
                            Exit While
                        End If
                        strReturn.Append(strTemp)
                        i += 1
                    End While
                    Return strReturn.ToString
                Else
                    Return strTarget
                End If
            End If
        End Function

#End Region

    End Class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值