この例を試してみましたが、2つの行を交換するだけで、異なる出力が得られます。
String inputString = "username@gmail.com";
String pattern="([a-z]+@)([a-z]+)(\\.[a-z]+)";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(inputString);
///ここで変更が発生します
if(m.find())
{
String resultString = m.replaceAll("$1xxxx$3");
System.out.println(resultString);
}
System.out.println(m.matches());//line to be changed
出力:
username@xxxx.com
true
System.out.println(m.matches());//line changed
if(m.find())
{
String resultString = m.replaceAll("$1xxxx$3");
System.out.println(resultString);
}
出力:true