7

私はいくつかのコードを書きました。コードを以下に示します。最初の部分は、html を文字列形式に読み取ることです。2 番目の部分は、文字列内のマークを検索し、その文字列を別の文字列に置き換えることです。

最初の部分 (何度もテストしましたが、問題なく動作します)

Public Function ReadTextFile(ByVal TextFileName As String) As String
    Dim TempString As String
    Dim StreamToDisplay As StreamReader
    StreamToDisplay = New StreamReader(TextFileName)
    TempString = StreamToDisplay.ReadToEnd
    StreamToDisplay.Close()
    Return TempString
End Function

2番目の部分(何度もテストしましたが、検索と置換が機能しません。「TempText」に文字列が含まれていることを何度も確認しました。「the_key_string」は「TempText」文字列内に含まれています。QuickWatchを使用して確認しますVB.net. ただし、置換機能は機能しません)

            Dim TextPath = C:xxxxxx
            TempText = ReadTextFile(TextPath)
            TempText.Replace("the_key_string", "replace_by_this_string")

助けてください。どこで間違えたのかわからない

4

6 に答える 6

11

String.Replaceソース文字列を変更する代わりに、新しい文字列を返します。それを変数に割り当てる必要があります。

TempText = TempText.Replace("the_key_string", "replace_by_this_string")

MSDN から:

現在のインスタンス内の指定された文字列のすべての出現箇所が別の指定された文字列に置き換えられた新しい文字列を返します。

于 2013-10-07T20:42:52.610 に答える
4

文字列は不変です。つまり、一度作成すると変更できません。したがって、新しいものを作成し、それを文字列変数に割り当てる必要があります。

TempText = TempText.Replace("the_key_string", "replace_by_this_string")

MSDN: String Data Type (Visual Basic):

文字列を String 変数に割り当てると、その文字列は不変になります。つまり、その長さや内容を変更することはできません。何らかの方法で文字列を変更すると、Visual Basic は新しい文字列を作成し、以前の文字列を破棄します。次に、String 変数は新しい文字列を指します。

于 2013-10-07T20:43:18.503 に答える
1

次のようなものに値を割り当てる必要があります。

TempText = TempText.Replace("the_key_string", "replace_by_this_string")
于 2013-10-07T20:42:57.550 に答える
1

これは文字列の置換を実行していますが、その結果をどこにも置いていません:

TempText.Replace("the_key_string", "replace_by_this_string")

結果を何かに割り当てる必要があります。

TempText = TempText.Replace("the_key_string", "replace_by_this_string")
于 2013-10-07T20:43:08.533 に答える
0

Replace メソッドは、変更された文字列を返します。

次のようなものが必要です。

Dim TextPath = C:xxxxxx
TempText = ReadTextFile(TextPath)
Dim ModifiedString as String
ModifiedString = TempText.Replace("the_key_string", "replace_by_this_string")
于 2013-10-07T20:43:59.723 に答える
0

「これは文字列です」 'string' を 'whatever' に置き換えます。この文字列は次のようになります。あなたができることは、それを新しい文字列に入れることです。どうやって?replace メソッドは文字列を返すので、簡単です :) これを参照してください: msdn

于 2013-10-07T20:46:45.677 に答える