2011-12-09 19 views
1

は、{」私が使って試してみました:Javaの特別な区切り文字で分割した文字列は、私は区切り文字を}}を使用しての部分に分割したい文字列を、持っている

String delims="['}},{\"']+"; 
String field[]=new String[50]; 
field=subResult.split(delims); 

をしかし、それは:-(動作していませんあなたが知っている、私はdelimsでどのような表現を使うべきですか?

感謝をあなたの回答

+0

が必要ですか? –

答えて

2

をするためにデリミタが単純であれば}},{が、その後subResult.split("\\}\\},\\{")が動作するはず

String fooo = "asdf}},{bar}},{baz"; 
System.out.println(Arrays.toString(fooo.split("\\}\\},\\{"))); 
1

あなたはそれをエスケープする必要があります。

String.split("\\}\\},\\{"); 
3

{は、文字クラスの始まりを正規表現のメタ文字です。あなたは\\とそれに先行することによってそれをエスケープする必要がリテラル{に合わせて:あなたは、正規表現エンジンは、それが先行していないとして、それは文字通り}であることを推測すると、あなたの正規表現で}をエスケープする必要はありません

String delims="}},\\{"; 
String field[] = subResult.split(delims); 

オープニングで{。それはそれを逃れることに害はないと言いました。

See it

1

あなたが必要とするよりも、それはより複雑に作ることができます。

String text = "{{aaa}},{\"hello\"}"; 
String[] field=text.split("\\}\\},\\{\""); 
System.out.println(Arrays.toString(field)); 
0

用途:あなたは、区切り文字に二重引用符を `" `

Pattern p = Pattern.compile("[}},{\"]");        
// Split input with the pattern 
String[] result = p.split(MyTextString); 
関連する問題