1
String str = "#aaa# #bbb# #ccc#   #ddd#"

レギュラーを使用して部分文字列「aaa」、「bbb」、「ccc」、「ddd」(「# #」と「# #」の数のペアにある部分文字列は不明)を取得する方法を教えてください。表現?

ありがとう!

4

3 に答える 3

3

正規表現の使用:

Pattern p = Pattern.compile("#(\\w+)#");
String input = "#aaa# #bbb# #ccc#   #ddd#";
Matcher m = p.matcher(input);

List<String> parts = new ArrayList<String>();
while (m.find())
{
    parts.add(m.group(1));
}

// parts is [aaa, bbb, ccc, ddd]

http://ideone.com/i1IAZ

于 2012-05-01T03:21:10.890 に答える
2

これを試して:

String str = "1aaa2 3bbb4 5ccc6   7ddd8";
String[] data = str.split("[\\d ]+");

結果の配列の各位置には、空の最初のものを除いて、部分文字列が含まれます。

System.out.println(Arrays.toString(data));
> [, aaa, bbb, ccc, ddd]
于 2012-05-01T03:14:20.930 に答える
-1

これを使用してそれを行うさらに別の方法がありますStringTokenizer

    String str="#aaa# #bbb# #ccc#   #ddd#";
    //# and space are the delimiters
    StringTokenizer tokenizer = new StringTokenizer(str, "# ");
    List<String> parts = new ArrayList<String>(); 
    while(tokenizer.hasMoreTokens())
       parts.add(tokenizer.nextToken());
于 2012-05-01T03:54:12.063 に答える