以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- ZZT0063怎么把这个字符串分成 ZZT 0063 ? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76459) |
-- 作者:aduydgd -- 发布时间:2015/10/29 16:11:00 -- ZZT0063怎么把这个字符串分成 ZZT 0063 ? ZZT0063怎么把这个字符串分成 ZZT 0063 ?不能用LEFT,因为字母不固定 一句代码解决最好
|
-- 作者:大红袍 -- 发布时间:2015/10/29 16:14:00 -- Dim str As String = "abcef001234" Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[a-zA-Z]+|[0-9]+") For i As Integer = 0 To mc.count - 1 msgbox(mc(i).value) Next |
-- 作者:aduydgd -- 发布时间:2015/10/29 16:18:00 -- 数字分开后我加1就直接变成192了,而不是0192,这个怎么处理? |
-- 作者:aduydgd -- 发布时间:2015/10/29 16:25:00 -- 我的目的是在数据库中查找ID最大值,找到后加1,有没有更好的方法? 比如我数据找到:XAT0191 这个字符我希望加1得到:XAT0192 这个有什么好方法?
|
-- 作者:大红袍 -- 发布时间:2015/10/29 16:29:00 -- Dim str As String = "abcef001234" Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[a-zA-Z0]+|[1-9]+") If mc.count = 2 Then str = mc(0).value & mc(1).value + 1 msgbox(str) End If |
-- 作者:aduydgd -- 发布时间:2015/10/29 16:34:00 -- 完美解决 |
-- 作者:e-png -- 发布时间:2015/10/29 17:05:00 -- 这样就有问题了吧:Dim str As String = "abcef00999" |
-- 作者:大红袍 -- 发布时间:2015/10/29 17:06:00 -- 那你就判断加1后字符长度是否变化。 |
-- 作者:lsy -- 发布时间:2015/10/29 17:16:00 -- 为了美观,也为了留出足够的长度,编码的数字部分,一般是用0补齐固定的位数,本例假设是4位: Dim str As String = "ZZT0063" Dim s As String = CStr(CInt(Right(str,4)) + 1).PadLeft(4,"0") Output.Show(s) |