从字符串中取末尾数字

yirenapple 2008-03-14 12:36:52
已知asd003、asd200
但这个字串的长度是不定的,数字也不一定是3位,我想让他自增,也就是根据数字补充:asd003、asd004,asd005……asd200,类似这样的问题怎么解决啊?谢谢
...全文
409 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dcbr4 2008-03-14
  • 打赏
  • 举报
回复
存两个字段 用的时候把他们加起来就行
淡蓝色2 2008-03-14
  • 打赏
  • 举报
回复
给你写个函数,不过这个函数存在下面已知问题:
给定"abc0123",会返回"abc124",就是说,数字部分的前面的0会被丢弃。
我时间很紧,就不继续调试了,只是给你一个思路,你稍微修改一下代码 即可解决上面的问题。

Private Function IncreaseString(ByVal src As String) As String
If Not String.IsNullOrEmpty(src) Then
For I As Integer = src.Length - 1 To 0 Step -1
If Not Char.IsDigit(src(I)) Then
Return src.Substring(0, I + 1) & CLng(ChrW(48) & src.Substring(I + 1)) + 1
End If
Next
End If
Return (CLng(ChrW(48) & src) + 1).ToString
End Function

yirenapple 2008-03-14
  • 打赏
  • 举报
回复
谢谢7楼给的代码,我等下研究下,得出的结果是我想要的。
poson 2008-03-14
  • 打赏
  • 举报
回复
正则表达式提取,前面字符串,后面数据,
hc8112_boy 2008-03-14
  • 打赏
  • 举报
回复
dim i as integer
dim bb as string="lkj3asd123"
for i=1 to bb.length step 1

if not isnumeric(microsoft.visualbasic.right(bb,i)
messagebox.show "数字是:" & microsoft.visualbasic.right(bb,i-1)

exit for
end if




next i
yirenapple 2008-03-14
  • 打赏
  • 举报
回复
如果这个字串是固定的话,把字符和数字分开很容易,但问题是它是个可变的字符,但有一点是不变的,那就是只取最后的一排数字,中间如果和字串夹有数字可以不理会。类似lkj3asd123,我要的是123
harryheart 2008-03-14
  • 打赏
  • 举报
回复
分的过程?
\d+$
yirenapple 2008-03-14
  • 打赏
  • 举报
回复
楼上的给出的是已经分好字符串的代码,我要的是分的过程……
还有就是说一下,字符串的长度是不固定的,数字长度字符也是不固定的,这个字符串也可能是 kljasd231
rangeon 2008-03-14
  • 打赏
  • 举报
回复
"asd" + (int).ToString("000");
yirenapple 2008-03-14
  • 打赏
  • 举报
回复
可问题是长度都是不固定的啊,按照你这样说的话,你写个下例子出来可以么?

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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