VB中字符串拆分成一维数组的问题

缱绻Fields 2013-06-01 09:56:18
一个字符串中有中文和英文还有标点符号,怎么拆分然后存在一维数组中呢,
打个比方,“我经常逛CSDN论坛,这里有很多experiened man。”
按顺序拆分成“我经常逛” “CSDN" "论坛“ "," "这里有很多” “experiened man” “。”
即使不用一维数组也可以。只是希望可以按顺序存储下来,到时候还可以按顺序调用!
求各位好心的大神们指导!
跪谢
...全文
380 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2013-06-03
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim strArr() As String, strSubLine() As String, strLine() As String
Dim i As Long, j As Long, k As Long, p As Long, n As Long
Dim isChinese As Boolean

Dim strSource As String

strSource = "我经常逛CSDN论坛,这里有很多experiened man。"

ReDim strArr(Len(strSource) - 1)

strLine = Split(strSource, "¡£")

For i = 0 To UBound(strLine)
    strSubLine = Split(strLine(i), "£¬")
    For j = 0 To UBound(strSubLine)
        p = 1
        For k = 1 To Len(strSubLine(j))
            If k = 1 Then
                isChinese = (Asc(Mid(strSubLine(j), 1, 1)) < 0)
            Else
                If (Asc(Mid(strSubLine(j), k, 1)) > 0 And isChinese) Or (Asc(Mid(strSubLine(j), k, 1)) < 0 And Not isChinese) Then
                    isChinese = Not isChinese
                    strArr(n) = Mid(strSubLine(j), p, k - p)
                    n = n + 1
                    p = k
                End If
            End If
        Next k
            
        strArr(n) = Mid(strSubLine(j), p, k - p)
        n = n + 1
    Next j
Next i

ReDim Preserve strArr(n - 1)

For i = 0 To n - 1
    Debug.Print strArr(i)
Next i
End Sub
BTW, 这句话似乎应该是“我经常逛CSDN论坛,这里有很多experiened people。”
缱绻Fields 2013-06-03
  • 打赏
  • 举报
回复
"¡£" "£¬"这两个表达的是什么意思啊!小白一个,不懂呜呜
threenewbee 2013-06-02
  • 打赏
  • 举报
回复
google 分词控件
缱绻Fields 2013-06-02
  • 打赏
  • 举报
回复
是这样的,要吧文字带入到一个矢量绘图软件里面。要更在字符间距,但是那个里面是不识别英文的。都改了的话英文字母就会被拆分,没办法了把一个句子拆开!
缱绻Fields 2013-06-02
  • 打赏
  • 举报
回复
没有别的了,就是英文,汉子,标点符号!
思考 2013-06-02
  • 打赏
  • 举报
回复
可以,但你得把可能的组合类别都写出来,目前是: 汉字,字母,逗号,句号 还有别的吗?
bcrun 2013-06-02
  • 打赏
  • 举报
回复
我看着怎么像是要中文分词呢?那就太复杂了吧。一般的,我想顶多搞个词库,再查找匹配吧。
worldy 2013-06-01
  • 打赏
  • 举报
回复
如果加人分隔字符,比如“,”,则可以使用 dim s as string dim B() as string s="....." B=split(s,",") 则,所有,之间的字符,成为B的一个元素 像你这个,只能转换为一个数组 dim s as string dim B() as byte s="....." B=strconv(s,vbfromunicode) 每个字符对应一个字节单元,如果是汉字,则为2个字节

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧