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