以文本方式查看主题

-  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


 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:新建文本文档.txt



效果不上传了,自己复制代码到命令窗口尝试啊
[此贴子已经被作者于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
--  
哥 厉害啊  就这么简单的代码 我喜欢 感谢啊