先看看excel怎么处理笔画排序的:

以上视频展示了使用excel内部排序规则来进行笔画排序

vb如何实现字符转换为大小写字母(:汉字笔画排序及拼音排序)(1)

然后通过下面对应表来确定笔画数

汉字与笔画数对应表: 汉字 笔画数 一1 二2 三3 亖4 弍5 弎6 匤7 邼8 砉9 耕10 彗11 耠12 耢13 耤14 熭15 耩16 耫17 耮18 耯19 瓎20 耰21 耲22 瓚23 瓛24 纛25 驠26 鬤27 驨28 驪29 驫30 灩31 籲32 龗33 齾35 齉36 靐39 龘48

通过excel对汉字进行对比笔画对应表再排序。比如“弎”6画,匤7画,邼8画

通过相邻区间位置,可以容易得到汉字笔画数表。这个工作我将后一步编程实现。

通过查找MSDN,找到相关资料:

https://docs.microsoft.com/zh-cn/previous-versions/bb688122(v=msdn.10)?redirectedfrom=MSDN

NET Framework 中的排序与字符串比较

字符串比较

CompareInfo 类提供了一组可用来执行区分文化的字符串比较方法。CultureInfo.CompareInfo 属性(CultureInfo 类的一个实例)可定义如何针对特定文化来比较和排序字符串。String.Compare 方法使用 CultureInfo.CompareInfo 属性中的信息来比较字符串。如果 string1 小于 string2,此方法返回一个负整数;如果 string1 和 string2 相等,则返回零 (0);如果 string1 大于 string2,则返回一个正整数。

以下代码示例将说明如何根据进行比较时所使用的文化,通过 String.Compare 方法以不同的方式来计算两个字符串。首先,将 CurrentCulture 设置为丹麦语(丹麦),并比较字符串 "Apple" 和 "Æble"。丹麦语将字符 "Æ" 视为一个单独的字母,在字母表中将其排在 "Z" 之后。因此对于丹麦语文化,字符串 "Æble" 大于 "Apple"。接下来,将 CurrentCulture 设置为英语(美国),再次比较字符串 "Apple" 和 "Æble"。这一次,字符串 "Æble" 被认为小于 "Apple"。英语语言将字符 "Æ" 视为一个特殊符号,在字母表中将其排在字母 "A" 之前。

字符串排序

Array 类提供了一个重载的 Array.Sort 方法,通过它可以根据 CultureInfo.CurrentCulture 属性来排序数据。在以下示例中,将创建一个由三个字符串组成的数组。首先,将 CurrentCulture 设置为 "en-US" 并调用 Array.Sort 方法。生成的排序顺序采用的是 "en-US" 文化的排序约定。接下来,将 CurrentCulture 设置为 "da-DK",并再次调用 Array.Sort 方法。注意此排序顺序的生成方式不同于 "en-US" 的结果,因为这次使用的是 "da-DK" 文化的排序约定。

vb如何实现字符转换为大小写字母(:汉字笔画排序及拼音排序)(2)

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click Dim sz As String() = {"我", "是", "中", "国", "人"} ‘定义一个字符串数组 Thread.CurrentThread.CurrentCulture = New CultureInfo(&H804) 设置CurrentCulture.LCID为&H804,注意是十六进制,下面输出也用了HEX输出。 ListBox1.Items.Add(Hex(Application.CurrentCulture.LCID)) Array.Sort(sz) 排序到listbox(sz) ListBox1.Items.Add("按发音数排序完成") Thread.CurrentThread.CurrentCulture = New CultureInfo(&H20804) ListBox1.Items.Add(Hex(Application.CurrentCulture.LCID)) Array.Sort(sz) 排序到listbox(sz) ListBox1.Items.Add("按笔画数排序完成") Thread.CurrentThread.CurrentCulture = New CultureInfo("zh-cn") ListBox1.Items.Add(Hex(Application.CurrentCulture.LCID)) Array.Sort(sz) 排序到listbox(sz) ListBox1.Items.Add("按拼音排序完成") End Sub Sub 排序到listbox(sz() As String) For i = 0 To UBound(sz) ListBox1.Items.Add(sz(i)) Next End Sub

vb如何实现字符转换为大小写字母(:汉字笔画排序及拼音排序)(3)

,