字符串替换根本不起作用

时间:2012-05-03 16:25:29

标签: asp.net vb.net

我正在阅读一个文本文件,我需要使用我标记为{0},{1},{2},{3},{4},{5},{6的新文本替换一些区域}。

所以我加载文本,将其保存到字符串变量,然后使用String.Replace但它不起作用。

        For i As Integer = 0 To 6
            fileText.Replace("{" & i & "}", DisplayStudentData(i))
        Next

DisplayStudentData看起来像这样:

        Protected Function DisplayStudentData(ByVal itemNumber As Integer) As String

        Dim dsItem As String = ""
        If itemNumber <> -1 Then
            Select Case itemNumber
                Case 0
                    dsItem = "testFirstName"
                Case 1
                    dsItem = "testTitle"
                Case 2
                    dsItem = "testClass"
                Case 3
                    dsItem = "testTeacher"
                Case 4
                    dsItem = "testDept"
                Case 5
                    dsItem = "testEmail"
                Case 6
                    dsItem = "testPhone"
            End Select
        End If
        Return dsItem
    End Function

看起来上面应该有效,但事实并非如此。

非常感谢任何帮助。

谢谢!


好的,我想通了......

我将所有数据项放入数组中,然后在加载文本文件后执行此操作:

            fileText = String.Format(fileText, dArr(0), dArr(1), dArr(2), dArr(3), dArr(4), dArr(5), dArr(6))

这是一个很好的方法吗?

2 个答案:

答案 0 :(得分:10)

fileText = fileText.Replace("{" & i & "}", DisplayStudentData(i))

替换会返回字符串。它不会修改调用它的字符串。

你也可以这样做:

fileText = String.Format(fileText, Enumerable.Range(0,7).Select(Function(i) DisplayStudentData(i)).ToArray())

为什么DisplayStudentData首先不是一个数组(这会使string.Format(更容易)?)

答案 1 :(得分:2)

另一方面,如果你知道字符串将始终保持不变

你可以做点什么

dim myTestString = "{0} {1} {2} {3} {4} {5} {6}"
dim result as string = string.format(myTeststring, "testFirstName", 
 "testTitle", "testClass", "testTeacher", "testDept", "testEmail", "testPhone")

你总是可以将它作为studentdata对象的属性。