2011-10-24 13 views
2

私は23ert[word]45y[li]dfdf[beautiful]adfのような文字列を持っています。括弧[...]で囲まれた各単語を配列またはコレクションにまとめたいと思います。この例の文字列は、配列またはコレクション内で[word],[li]および[beautiful]となります。統計情報の表示方法括弧の内容(括弧を含む)を文字列に入れます

これを行うには、正規表現やその他の方法をどのように使用できますか?

編集:私は良いveruフォローメソッドを使用しますが、場合、文字列は56 [TY [DF]ゆう] 5689として、私は取得したいとき[DF]、コード

答えて

2
static public List<String> collect(String str) { 
    List<String> list = new ArrayList<String>(); 
    Pattern p = Pattern.compile("\\[.+?\\]"); 
    Matcher m = p.matcher(str); 
    while (m.find()) 
     list.add(m.group()); 
    return list; 
} 
+0

+1の11秒間の短縮:D – FailedDev

+0

ありがとうございました。 – pengwang

+0

ご迷惑をおかけして申し訳ありませんが、あなたの方法はとても良いですが、文字列を45 [d [12] f] ]、あなたの方法を使用して私はこれはできません、あなたは再び私を助けることができますか?ありがとう – pengwang

2
List<String> matchList = new ArrayList<String>(); 
try { 
    Pattern regex = Pattern.compile("\\[.+?\\]"); 
    Matcher regexMatcher = regex.matcher(subjectString); 
    while (regexMatcher.find()) { 
     matchList.add(regexMatcher.group()); 
    } 
} catch (PatternSyntaxException ex) { 
    // Syntax error in the regular expression 
} 
を変更する方法

これを試してください。

+0

ありがとう! :)良いスポーツマンシップ –

+0

申し訳ありませんが、あなたのメソッドは非常に良い質問がありますが、私は45 [d [12] f]として文字列を使用して、私は[12]を取得したい、あなたの方法を使用して、もう一度私を助けてくれますか?ありがとうございます – pengwang

+0

@pengwang定期的な退会でこれを行うことができますが、例えば[[[something]]と一致させたいですか? – FailedDev