在ASP Classic中拆分字符串

时间:2010-05-02 12:30:53

标签: asp-classic

所以这是我的字符串:

  

Lorem ipsum dolor坐下来,精神上的精神。 Nullam elit lacus,dignissim quis laoreet non,cursus id eros。 Etiam lacinia tortor vel purus eleifend accumsan。 Pellentesque居民morbi tristique senectus et netus et malesuada fames ac turpis egestas。 Quisque bibendum vestibulum nisl vitae volutpat。

我需要每100个字符(仅限全字)分割它,直到所有字符都用完为止。

所以我们最终得到:

  

Lorem ipsum dolor坐下来,精神上的精神。 Nullam elit lacus,dignissim quis laoreet non,

  

cursus id eros。 Etiam lacinia tortor vel purus eleifend accumsan。 Pellentesque居民morbi tristique

  

senectus et netus et malesuada fames ac turpis egestas。 Quisque bibendum vestibulum nisl vitae volutpat。

有关最佳方法的任何想法吗?

3 个答案:

答案 0 :(得分:4)

由于Daniel回复了与我的描述类似的实际代码,我将采用不同的建议。我可能是一个有计数的角色。此代码打印开始/结束偏移和子字符串。您需要做的是修改它以将字符串保存在数组中:

<%

Dim LoremIpsum

    LoremIpsum = "Lorem ipsum dolor sit amet....."

    Response.Write LoremIpsum & "<br>"

    SplitWords LoremIpsum, 100


Function SplitWords(text, maxlen)

Dim c, i, j, l

    l = Len(text)
    i = 1
    j = maxlen

    Do While (j < l And Response.IsClientConnected)

        c = Mid(text, j, 1)

        Do While (c <> " " And j > i)

            j = j - 1

            c = Mid(text, j, 1)

        Loop

        Response.Write(i & "<br>")
        Response.Write(j & "<br>")

        s = Mid(text, i, j-i)

        Response.Write(s & "<br>")

        i = j
        j = j + maxlen

    Loop


End Function

%>

答案 1 :(得分:2)

首先,您可能希望将空格字符拆分为分隔符。然后以空字符串开头,迭代数组中的每个单词,将每个单词连接到新字符串,直到单词数超过100:

str = "Lorem ipsum ...."
words = Split(str)
stringSection = ""
wordCounter = 0

FOR EACH word IN words
   stringSection = stringSection & word
   wordCounter = wordCounter + 1

   IF wordCounter >= 100 THEN
      Response.Write(stringSection & "<BR /><BR />")

      wordCounter = 0
      stringSection = ""
   ELSE
      stringSection = stringSection & " "
   END IF
NEXT

Response.Write(stringSection & "<BR /><BR />")

请注意,最后Response.Write是处理上一个stringSection所必需的,即使它可能没有超过100个字。

答案 2 :(得分:1)

我需要计算空间并将它作为一个函数...这就是我想出来的......

Function wordSubstring(txtString,maxLen)
    words = Split(txtString," ")
    charCounter = 0
    stringSection = ""
    For Each word IN words
        stringSection = stringSection & word
        charCounter = len(stringSection)
        if charCounter >= maxLen Then
            wordSubstring=stringSection
            exit For
        else
            stringSection = stringSection & " "
        end If
    Next
    wordSubstring = stringSection
End Function