Locale (String localeStr) { int p = localeStr.indexOf('.'); if (p > 0) localeStr = localeStr.substring(0, p); p = localeStr.indexOf('@'); if (p > 0) localeStr = localeStr.substring(0, p); p = localeStr.indexOf('_'); if (p < 0) { return new Locale(localeStr); } else { return new Locale(localeStr.substring(0, p), localeStr.substring(p + 1)); } }