String str = "#aaa# #bbb# #ccc# #ddd#"
レギュラーを使用して部分文字列「aaa」、「bbb」、「ccc」、「ddd」(「# #」と「# #」の数のペアにある部分文字列は不明)を取得する方法を教えてください。表現?
ありがとう!
正規表現の使用:
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]
これを試して:
String str = "1aaa2 3bbb4 5ccc6 7ddd8";
String[] data = str.split("[\\d ]+");
結果の配列の各位置には、空の最初のものを除いて、部分文字列が含まれます。
System.out.println(Arrays.toString(data));
> [, aaa, bbb, ccc, ddd]
これを使用してそれを行うさらに別の方法があります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());