1

次のXMLを使用する場合:

<security>
<user>user</user>
<password>pass   </password>
</security>

Trim()パスワードノードのメソッドを呼び出すと、InnerText適切にトリミングされますが、フラグメントを次のように変更すると、次のようになります。

<security>
<user>user</user>
<password>pass

メソッドを機能させることができませんTrim()。スペースを削除したパスは次のように返されますpass(最後にスペースが1つあります)。ウォッチウィンドウを見て、値をダブルクリックすると、次のように表示されます。

"pass" & vbLf & ""

4

2 に答える 2

2

String.Trimメソッドは、改行文字を削除しません。スペースを削除するだけです。すべての改行を削除する場合は、次のようにするだけです。

InnterText.Replace(Environment.NewLine, "").Trim()

ただし、これにより、テキストの最初または途中の改行が削除されます。しかし、とにかく、おそらくそれはあなたが望むものです。

または、Trimのオーバーロードを使用して、削除する文字の配列を渡すことができます(ただし、削除するのは最初と最後からのみで、途中からは削除されません)。

InnterText.Trim(Environment.NewLine.ToCharArray()).Trim()
于 2012-05-09T14:00:52.590 に答える
1

Char.IsWhiteSpaceのページによると、定義上、改行、タブ、およびキャリッジ リターンはすべて空白文字です。また、この関数が true を返すことは、Trim によって削除されることを意味しないという警告もあります。

Replace を使用するか、削除したい文字に Trim に Char 配列を渡すことができます。

于 2012-05-09T14:06:05.120 に答える