0

次の文字列があるとしますstr:

GTM =0.2
Test =100
[DLM]
ABCDEF =5

[DLM](はい、改行文字が含まれています)次のように区切り文字の部分文字列で分割しようとしています:

String[] strArr = str.split("[DLM]");

なぜ私がそうするのですか:

System.out.print(strArr[0]);

私はこの出力を得る:GT

そして私がするとき

System.out.print(strArr[1]);

私は得る=0.2

これはまったく意味がありますか?

4

4 に答える 4

5

str.split("[DLM]");する必要がありますstr.split("\\[DLM\\]");

なんで?

[および]特殊文字であり、正規表現をString#split受け入れます。

私がもっと好きな解決策は、次のものを使用していPattern#quoteます:

str.split(Pattern.quote("[DLM]"));

quote指定された正規表現の文字列表現を返します。

于 2013-11-07T13:10:32.967 に答える
1

はい、「D、L、またはMで分割」という正規表現を提供しています。

このような男の子をエスケープする必要があります: str.split("\[DLM\]");

最初のMで分割されています。

于 2013-11-07T13:11:43.260 に答える
1

ブラケットをエスケープする

("\\[DLM\\]")

" " 内で括弧を使用すると、括弧内の各文字が区切り文字として読み取られます。あなたの場合、M区切り文字でした

于 2013-11-07T13:11:51.270 に答える
1

使用する

 String[] strArr = str.split("\\[DLM]\\");

それ以外の

 String[] strArr = str.split("[DLM]");

それ以外の場合は、D、または L、または M のいずれかで分割されます。

于 2013-11-07T13:12:47.920 に答える