/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
ArrayList<String> fruits_arr = new ArrayList<String>();
fruits_arr.add("Banana");
fruits_arr.add("Orange");
fruits_arr.add("Apple");
fruits_arr.add("Grape");
String s
= "My most favorite fruit is [0], but I also like [1] and [3]"; Matcher m = Pattern.compile("\\[(\\d+)\\]").matcher(s);
while (m.find()) {
int num
= Integer.
parseInt(m.
group(1)); if (num < fruits.length) {
replacement =fruits[num];
} else {
replacement = m.group();
}
m.appendReplacement(result, replacement);
}
m.appendTail(result);
System.
out.
println(result.
toString());
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguKjsKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkgQXJyYXlMaXN0PFN0cmluZz4gZnJ1aXRzX2FyciA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwogICAgICAgICAgICBmcnVpdHNfYXJyLmFkZCgiQmFuYW5hIik7CiAgICAgICAgICAgIGZydWl0c19hcnIuYWRkKCJPcmFuZ2UiKTsKICAgICAgICAgICAgZnJ1aXRzX2Fyci5hZGQoIkFwcGxlIik7CiAgICAgICAgICAgIGZydWl0c19hcnIuYWRkKCJHcmFwZSIpOwogICAgICAgIFN0cmluZ1tdIGZydWl0cyA9IGZydWl0c19hcnIudG9BcnJheShuZXcgU3RyaW5nWzBdKTsKICAgICAgICBTdHJpbmcgcyA9ICJNeSBtb3N0IGZhdm9yaXRlIGZydWl0IGlzIFswXSwgYnV0IEkgYWxzbyBsaWtlIFsxXSBhbmQgWzNdIjsKCQlTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOwoJCU1hdGNoZXIgbSA9IFBhdHRlcm4uY29tcGlsZSgiXFxbKFxcZCspXFxdIikubWF0Y2hlcihzKTsKCQl3aGlsZSAobS5maW5kKCkpIHsKICAgIAkJaW50IG51bSA9IEludGVnZXIucGFyc2VJbnQobS5ncm91cCgxKSk7CiAgICAJCVN0cmluZyByZXBsYWNlbWVudCA9ICIiOwogICAgCQlpZiAobnVtIDwgZnJ1aXRzLmxlbmd0aCkgeyAKICAgIAkJICAgICAgIHJlcGxhY2VtZW50ID1mcnVpdHNbbnVtXTsKICAgIAkJfSBlbHNlIHsKICAgIAkJCXJlcGxhY2VtZW50ID0gbS5ncm91cCgpOwogICAgCQl9CgkJICAgIG0uYXBwZW5kUmVwbGFjZW1lbnQocmVzdWx0LCByZXBsYWNlbWVudCk7CgkJfQoJCW0uYXBwZW5kVGFpbChyZXN1bHQpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihyZXN1bHQudG9TdHJpbmcoKSk7CgoJfQp9