JavaScriptには、以下のように置き換え処理の途中でマッチした文字(文字列)を
次々と拾い、各自処理する方法があるのですが、同様の処理はJAVAでも
可能でしょうか。

function test1(str1){

return str1.replace(/[abc]/g,test2);

}

function test2(str2){

if(str2=="a") return "{"+str2+"}";
if(str2=="b") return "("+str2+")";
else return "["+str2+"]";

}

alert(test1("qwertyuiopasdfghjklzxcvbnm"));