Javaで文字列にUTF-8の4バイト文字が含まれているか確認する方法

iPhoneの絵文字や漢字の一部は4バイトのUTF-8の文字となり、mysqlのバージョンによっては保存できません。 文字列にUTF-8の範囲を超える文字が存在するかは以下のようなコードで確認できます。

Stirng str; //確認する文字列
Pattern pattern = Pattern.compile("[\\u0000-\\uFFFF]*");
 Matcher m = pattern.matcher(str);
 if(!m.matches()){
  //UTF-8の範囲を超える文字が存在する
}