2

次のような文字列を含む文字列変数Resultがあります。

"<field1>text</field1><field2>text</field2> etc.."

私はそれを分割しようとするためにこのコードを使用します:

Result = Result.replace("><", ">|<");

String[] Fields = Result.split("|");

これを含む多くのウェブサイトによると、これは私に次のような配列を与えるはずです:

Fields[0] = "<field1>text</field2>"
Fields[1] = "<field2>test</field2>"
etc...

しかし、それは私に次のような配列を与えます:

Fields(0) = ""
Fields(1) = "<"
Fields(2) = "f"
Fields(3) = "i"
Fields(4) = "e"
etc..

だから、私は何が間違っているのですか?

4

2 に答える 2

2

やってみる

String[] fields = result.split("\\|");

より慣習的な変数名を使用していることに注意してください (大文字で始めるべきではありません)。

メソッドは引数として正規表現splitを取り、正規表現の世界では特定の意味を持っていることに注意してください。これが、期待していたものを受け取っていない理由です。|


関連ドキュメント:

于 2012-10-24T23:46:58.513 に答える
2

への呼び出しは正規表現 or としてsplit("|")解析されており、それ自体ですべての文字間で分割されます。|

文字を正規表現エスケープしてこれが発生しないようにするか、別の一時的な分割文字を完全に使用できます。

String[] fields = result.split("\\|");

また

result = result.replace("><", ">~<");
String[] fields = result.split("~");
于 2012-10-24T23:48:23.127 に答える