最简单的取字符串问题

racesun 2004-07-15 03:32:58
有这么几个字符串:
0001-aaaa
001-aaa
YC0005-dgdg
CW01-776

我想取得没个字符串中的这几个字符:
0001
001
YC0005
CW01
既“-”前面的字符串,请问用什么函数,怎么写?
...全文
197 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gdami 2004-07-15
  • 打赏
  • 举报
回复
dim a as string,b() as string
a="0001-aaaa"
b=split(a,"-")
msgbox b(0) 'b(0)是左边的,b(1)是右边的。
helanshan 2004-07-15
  • 打赏
  • 举报
回复
字符串函数:
函数名 说明 例 结果
left(c,n) 取出字符串前边N个字符 left("YC0005-dgdg",6) YC0005
northwolves 2004-07-15
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Print getit("0001-aaaa")
Print getit("001-aaa")
Print getit("YC0005 -dgdg")
Print getit("CW01 -776")
End Sub
Function getit(ByVal x As String) As String
getit = Trim(Split(x, "-")(0))'----------------> as this
End Function
victorycyz 2004-07-15
  • 打赏
  • 举报
回复

要再加上个trim()是不是更好呢。
-------------------------------

这样也许有违设计要求,不过,倒是应该在取字串前判断一下是不是空串。

dim a as string
dim b as string
...
a="0001-aaaa"
if a<>"" then
b=left(a,instr(a & "-","-")-1) '避免出错。
else
msgbox "空字串,略过。"
end if
...
LichKingSZ 2004-07-15
  • 打赏
  • 举报
回复
“instr(s,"-")-1”代码说明:
instr(s,"-")表示在s串中查找字符"-",并返回查找到的位置(找不到返回0)

比如: instr("0001-aaaa","-")=5 减1等于4然后用LEFT取前4位字符。
zyguyue 2004-07-15
  • 打赏
  • 举报
回复
instr(s,"-")这个是指"-"字符在字符串中的位置(从左边数过来)
fushijunnan 2004-07-15
  • 打赏
  • 举报
回复
同意楼上的,要再加上个trim()是不是更好呢。
victorycyz 2004-07-15
  • 打赏
  • 举报
回复

dim a as string
dim b as string
...
a="0001-aaaa"
b=left(a,instr(a & "-","-")-1) '避免出错。
...
racesun 2004-07-15
  • 打赏
  • 举报
回复
instr(s,"-")-1是什么意思?谢谢!
LichKingSZ 2004-07-15
  • 打赏
  • 举报
回复
dim a as string
dim b as string
...
a="0001-aaaa"
b=left(a,instr(a,"-")-1)
...

7,759

社区成员

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

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