以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 字符串内容随心分割实例 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=31237) |
-- 作者:打错潇洒 -- 发布时间:2013/4/12 10:32:00 -- 字符串内容随心分割实例 这个我弄了一个上午啊,头都都大了 主要问题不是不会什么代码,主要就余数问题....小学数学没有学好啊 以下内容为程序代码: 1 Dim a As String = "得得的的得得的的" 2 Dim b As Integer = a.Length 3 Dim s As Integer = 8 4 If b >= s Then 5 If b Mod 2 = 0 Then 6 If b Mod s = 0 Then 7 For d As Integer = 0 To a.Length -s Step s 8 Output.Show(a.SubString(d,s)) 9 Next 10 Else 11 \'Dim e As String = a.PadRight(a.Length +1,"/") 12 Dim s1 As Integer = b Mod s 13 Dim s2 As Integer = s - s1 14 Dim e As String =a.PadRight(a.Length +s2,"/") 15 For d As Integer = 0 To e.Length -1 Step s 16 Output.Show(e.SubString(d,s)) 17 Next 18 End If 19 Else 20 Dim h As String = a.PadRight(a.Length +1,"/") 21 \' For d As Integer = 0 To e.Length -1 Step s 22 \' Output.Show(e.SubString(d,s)) 23 \' Next 24 Dim f As Integer = h.Length 25 If f Mod s = 0 Then 26 For g As Integer = 0 To h.Length -s Step s 27 Output.Show(h.SubString(g,s)) 28 Next 29 Else 30 \'Dim e As String = a.PadRight(a.Length +1,"/") 31 Dim s1 As Integer = f Mod s 32 Dim s2 As Integer = s - s1 33 Dim j As String =h.PadRight(h.Length +s2,"/") 34 For g As Integer = 0 To h.Length -1 Step s 35 Output.Show(h.SubString(g,s)) 36 Next 37 End If 38 End If 39 Else 40 Output.Show("分割数量不得大于字数") 41 End If 效果不上传了,自己复制代码到命令窗口尝试啊
[此贴子已经被作者于2013-4-12 14:34:03编辑过]
|
-- 作者:Bin -- 发布时间:2013/4/12 10:34:00 -- 你一次切3个.不是3个的倍数.最后一个不就报错了.很正常啊. |
-- 作者:打错潇洒 -- 发布时间:2013/4/12 10:39:00 -- 哦 恍然大悟啊 谢了 |
-- 作者:打错潇洒 -- 发布时间:2013/4/12 14:35:00 -- 更新了,求指教 |
-- 作者:Bin -- 发布时间:2013/4/12 14:42:00 -- 你这是什么意思呢?If b >= s Then 意思不就是说 长度超过8的意思么.那你ELSE Output.Show("分割数量不得大于字数") 不矛盾吗? 好混乱的逻辑. |
-- 作者:Bin -- 发布时间:2013/4/12 14:50:00 -- 你直接说你想实现什么效果. |
-- 作者:打错潇洒 -- 发布时间:2013/4/12 15:04:00 -- 我觉得没有太混乱啊 顶多最后的 Output.Show("分割数量不得大于字数") 描述不清楚 至于你说的 If b >= s Then 是因为 如果变量a的字符串是8个字 而 s的数值是9的话 请问怎么分割字符串 (我的代码里如果不加 If b >= s Then 输出的结果 可能是 s>a 字符串后面带很多的“/“) 还有 我是新手 我写代码时间不长而且我也不是太喜欢做伸手党,除非真的是没有办法了,伸手要,呵呵 谢谢 bin 神人了 感谢啊
|
-- 作者:don -- 发布时间:2013/4/12 15:11:00 -- Dim a As String = "得得的的得得的的但是测试内容得得的的得得的的但是测试内容得得的的得得的的但是测试内容得得的的得得的的但是测试内容" Dim b As Integer = a.Length Dim s As Integer =5 Dim c As Integer = Int(a.Length/s)*s-s If b = s Then Output.Show(a) ElseIf b > s Then For d As Integer = 0 To c Step s Output.Show(a.SubString(d,s)) Next If b > c+s Then Output.Show(a.SubString(c+s)) Else Output.Show("分割数量不得大于字数") End If
|
-- 作者:打错潇洒 -- 发布时间:2013/4/12 15:18:00 -- 哥 厉害啊 就这么简单的代码 我喜欢 感谢啊 |