水如烟

                 顺其自然,水到渠成 LzmTW

文或代码皆是面向初学者.我是爱好者,也是初学者.那些"文章",只按自己理解写,我是不知术语名词的.所以只供参考,也仅供参考.

导航

HOW TO:操作定长字符串

Posted on 2006-03-29 17:00  水如烟(LzmTW)  阅读(388)  评论(0编辑  收藏  举报
Author:水如烟

Public Class uString
    
Private Shared gEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312")

    
Public Shared Property Encoding() As System.Text.Encoding
        
Get
            
Return gEncoding
        
End Get
        
Set(ByVal value As System.Text.Encoding)
            gEncoding 
= value
        
End Set
    
End Property


    
Public Shared Function Length(ByVal s As StringAs Integer
        
Return gEncoding.GetByteCount(s)
    
End Function


    
Public Shared Function PadLeft(ByVal s As StringByVal totalWidth As IntegerByVal paddingChar As CharAs String
        
Return s.PadLeft(totalWidth + s.Length - Length(s), paddingChar)
    
End Function


    
Public Shared Function PadLeft(ByVal s As StringByVal totalWidth As IntegerAs String
        
Return s.PadLeft(totalWidth + s.Length - Length(s))
    
End Function


    
Public Shared Function PadRight(ByVal s As StringByVal totalWidth As IntegerByVal paddingChar As CharAs String
        
Return s.PadRight(totalWidth + s.Length - Length(s), paddingChar)
    
End Function


    
Public Shared Function PadRight(ByVal s As StringByVal totalWidth As IntegerAs String
        
Return s.PadRight(totalWidth + s.Length - Length(s))
    
End Function


    
Public Shared Function SubString(ByVal Line As StringByVal Index As IntegerByVal Length As IntegerAs String
        
Return gEncoding.GetString(gEncoding.GetBytes(Line), Index, Length)
    
End Function


End Class

测试对比:
    Private Sub ToolStripButton6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton6.Click
        
Dim tmp As String = "中国China"
        Console.WriteLine(LzmTW.uString.Encoding.EncodingName)


        Console.WriteLine(LzmTW.uString.Length(tmp))
        Console.WriteLine(tmp.Length)

        Console.WriteLine(tmp.Substring(
02))
        Console.WriteLine(LzmTW.uString.SubString(tmp, 
02))


        Console.WriteLine(
New String("*"c, 20))

        Console.WriteLine(LzmTW.uString.PadLeft(tmp, 
20"*"c))
        Console.WriteLine(tmp.PadLeft(
20"*"c))

        Console.WriteLine(LzmTW.uString.PadRight(tmp, 
20"*"c))
        Console.WriteLine(tmp.PadRight(
20"*"c))

        Console.WriteLine(LzmTW.uString.PadLeft(tmp, 
20))
        Console.WriteLine(tmp.PadLeft(
20))

        Console.WriteLine(LzmTW.uString.PadRight(tmp, 
20))
        Console.WriteLine(tmp.PadRight(
20))

    
End Sub