【问题标题】:Retrieve starting positions of the titles in the string检索字符串中标题的起始位置
【发布时间】:2015-03-16 21:19:22
【问题描述】:

我有一行七个不同的标题,可以由一个或两个单词组成,标题之间至少有 3 或 4 个空格。

"  Company Name        Contact Name      Address            City    State    Zip    Phone"

我需要检索每个标题开始的行中的位置。我使用 indexOf:

pos1 = line.IndexOf("company", System.StringComparison.InvariantCultureIgnoreCase)

这种方法效果很好,但是对于检索位置来说效率不高,因为该行来自文本文档并且存在很大的可变性,例如我可能有这样的事情:

"  C0mpany Name        C0ntact Name      Address            NCity    St)te    Zip    Phone"

所以措辞并不总是准确的。我所知道的是有 7 列。以编程方式检索这些列的 7 个起始位置的最佳方法是什么?

【问题讨论】:

  • 您可以将字符串拆分为三个空格的子字符串,删除空值,然后修剪每个。

标签: vb.net string indexof


【解决方案1】:

效果很好

    Dim s As String
    Dim v As Object
    Dim tok As Object

    s = "  C0mpany Name        C0ntact Name      Address            NCity    St)te    Zip    Phone"
    v = Split(s, "  ")
    For Each tok In v
        If Len(Trim(tok)) > 0 Then
            Debug.Print(tok & vbTab & InStr(s, tok))
        End If
    Next

输出:

C0mpany Name    3
C0ntact Name    23
Address 41
NCity   60
St)te   69
Zip 78
Phone   85

以上是Access VBA,但这里是剪切+粘贴到VB.net后的相同代码

【讨论】:

  • 我将您的代码转换为 VB.NET 但不幸的是它仍然不适合我
  • 我用工作 vb.net 代码的屏幕截图更新了帖子。 VBA 或 vb.net 中的代码对我来说很好用。是的,它适用于不同的间距(有点想为什么会问这个问题)。
猜你喜欢
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多