田草博客

互联网田草博客


网友交流QQ群:11740834 需注明申请加入原因

微信 公众号:ByCAD

邮箱:tiancao1001x126.com
ByCAD,微信公众号
首页 | 普通 | 电脑 | AutoCAD | VB/VB.NET | FLash | 结构 | 建筑 | 电影 | BIM | 规范 | 软件 | ID
-随机-|-分布-
-博客论坛-|-﨣﨤﨧﨨-
-网站导航-|-规范下载-
-BelovedFLash欣赏-

用户登陆
用户:
密码:
 

站点日历
73 2024 - 11 48
     12
3456789
10111213141516
17181920212223
24252627282930


站点统计

最新评论



VB.Net 获取文件的图标 VB.Net 让DataGridView显示行号
未知 VB>Net 字符和数字组合的字符串排序   [ 日期:2011-09-30 ]   [ 来自:本站原创 ]  HTML
    '字符和数字组合的字符串排序
    Function SortStringAndNumsic(ByVal A As ArrayList) As ArrayList
        Dim B As ArrayList = A
        Dim I As Long
        Dim B_l As ArrayList = New ArrayList
        Dim B_r As ArrayList = New ArrayList
        For I = 0 To A.Count - 1
            Dim Temp As Int16 = FenJieXian(B(I))
            B_l.Add(B(I).ToString.Substring(0, Temp))
            B_r.Add(B(I).ToString.Substring(Temp))
        Next
        '先安装左侧字母排序
        For I = 0 To B.Count - 2
            For J As Int16 = I + 1 To B.Count - 1
                If B_l(I) > B_l(J) Then

                    Dim temp As String = B_l(I)
                    B_l(I) = B_l(J)
                    B_l(J) = temp

                    temp = B_r(I)
                    B_r(I) = B_r(J)
                    B_r(J) = temp

                    temp = B(I)
                    B(I) = B(J)
                    B(J) = temp

                End If
            Next
        Next
        '再按照右侧数字排序
        For I = 0 To B.Count - 2
            For J As Int16 = I + 1 To B.Count - 1
                If (Val(B_r(I).ToString) > Val(B_r(J).ToString)) And (B_l(I) = B_l(J)) Then '此时需满足两个条件,要保持左侧顺序不变

                    Dim temp As String = B_r(I)
                    B_r(I) = B_r(J)
                    B_r(J) = temp

                    temp = B_l(I)
                    B_l(I) = B_l(J)
                    B_l(J) = temp

                    temp = B(I)
                    B(I) = B(J)
                    B(J) = temp

                End If
            Next
        Next
        Return B
    End Function
    '返回字母和数字组合起来的字符串,字母和数字的字符串分界线,即第一个数字出现的位置
    Function FenJieXian(ByVal S As String) As Int16
        For i As Int16 = 0 To S.Length - 1
            If IsNumeric(S.Substring(i, 1)) = True Then
                Return i
                Exit For
            End If
        Next
    End Function




暂时没有评论
发表评论 - 不要忘了输入验证码哦!
作者: 用户:  密码:   注册? 验证:  防止恶意留言请输入问题答案:1*2=?  
评论:

禁止表情
禁止UBB
禁止图片
识别链接
识别关键字

字体样式 文字大小 文字颜色
插入粗体文本 插入斜体文本 插入下划线
左对齐 居中对齐 右对齐
插入超级链接 插入邮件地址 插入图像
插入 Flash 插入代码 插入引用
插入列表 插入音频文件 插入视频文件
插入缩进符合
点击下载按钮 下标 上标
水平线 简介分割标记
表  情
 
Tiancao Blog All Rights Reserved 田草博客 版权所有
Copyright ©