vb中的字符处理。
我需要在文本框内输入英文,然后对英文文本提取每个英文单词,根据每个单词都会空格的特点用split截句子取词,有的单词末尾有标点,把需把标点去掉。再将这些单词作为listbox中的选项。请问代码如何写?我弄的代码是:
- VB code
Option Base 1Private Sub Command1_Click() Dim b As Integer, a() As String, t As Integer, i As Integer, c As String, d As String a = Split(Text1.Text, " "): c = "": d = "" For t = 1 To UBound(a) For i = 1 To Len(a(t)) b = Asc(Mid(a(t), i, 1)) If (b >= 65 And b <= 90) Or (b >= 97 And b <= 122) Then d = d & Mid(a(t), i, 1) ElseIf d <> "" Then c = c & d & vbCrLf End If Next i Next t If d <> "" Then c = d & vbCrLf Print cEnd Sub
[解决办法]
思路:
1、定义一个动态的字符串数组
2、使用Split以空格键来拆分文本框中的字符串
3、检查数组中的每个元素的最后面一个字符是不是字母,如果不是,那么去除它
4、将处理过后的字符串数组,循环加入ListBox中
[解决办法]
那就这样吧
- VB code
'---------------------------------------------------' 过程名 : sub2' 时间 : 2012-4-18 20:45' 作者 : 杨过.网狐.cn(csdn bcrun)' 功能 :' 说明 :' 备注 :'---------------------------------------------------'Private Sub sub2() Dim b As Integer, a() As String, t As Integer, i As Integer, c As String, d As String a = Split(Text1.Text, " "): c = "": d = "" List1.Clear For t = LBound(a) To UBound(a) d = "" For i = 1 To Len(a(t)) b = Asc(Mid(a(t), i, 1)) If (b >= 65 And b <= 90) Or (b >= 97 And b <= 122) Then d = d & Mid(a(t), i, 1) Else If d <> "" Then Exit For End If Next i If d <> "" Then List1.AddItem d End If Next t 'If d <> "" Then List1.AddItem d 'Print cEnd Sub
[解决办法]
- VB code
Private Sub Command1_Click() Dim B() As Byte Dim s As String Dim a() As String Dim i As Long B = Text1 For i = 0 To UBound(B) Select Case B(i) Case 0 Case Is < 65, Is > 122, 91 To 96 B(i) = 32 End Select Next s = B a = Split(s, " ") For i = 0 To UBound(a) If a(i) <> "" Then List1.AddItem a(i) End If NextEnd Sub