Java tutorial
/** * Este arquivo parte do Biblivre3. * * Biblivre3 um software livre; voc pode redistribu-lo e/ou * modific-lo dentro dos termos da Licena Pblica Geral GNU como * publicada pela Fundao do Software Livre (FSF); na verso 3 da * Licena, ou (caso queira) qualquer verso posterior. * * Este programa distribudo na esperana de que possa ser til, * mas SEM NENHUMA GARANTIA; nem mesmo a garantia implcita de * MERCANTIBILIDADE OU ADEQUAO PARA UM FIM PARTICULAR. Veja a * Licena Pblica Geral GNU para maiores detalhes. * * Voc deve ter recebido uma cpia da Licena Pblica Geral GNU junto * com este programa, Se no, veja em <http://www.gnu.org/licenses/>. * * @author Alberto Wagner <alberto@biblivre.org.br> * @author Danniel Willian <danniel@biblivre.org.br> * */ package biblivre3.utils; import com.ibm.icu.text.Transliterator; import java.security.MessageDigest; import java.text.Normalizer; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import mercury.ExceptionUser; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.WordUtils; /** * * @author Danniel Nascimento (dannielwillian@biblivre.org.br) * @since 17/02/2009 */ public final class TextUtils { private static final DecimalFormat decimalFormat; static { decimalFormat = new DecimalFormat("#,##0.00"); decimalFormat.setMinimumFractionDigits(2); decimalFormat.setMaximumFractionDigits(2); final DecimalFormatSymbols s = new DecimalFormatSymbols(); s.setDecimalSeparator(','); s.setGroupingSeparator('.'); decimalFormat.setDecimalFormatSymbols(s); } private TextUtils() { } public static String encodePassword(String password) { if (password == null) { throw new ExceptionUser("Password is null"); } if (password.trim().length() == 0) { throw new ExceptionUser("Password is empty"); } try { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(password.getBytes("UTF-8")); byte[] raw = md.digest(); return new String((new Base64()).encode(raw)); } catch (Exception e) { throw new ExceptionUser(e.getMessage()); } } public static String formatCurrency(final Float input) { return decimalFormat.format(input); } public static String removeDiacriticals(final String input) { if (input == null) { return input; } final String decomposed = Normalizer.normalize(input, Normalizer.Form.NFD); String final2 = decomposed.replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); return final2; } public static String combine(final String input) { if (input == null) { return input; } return Normalizer.normalize(input, Normalizer.Form.NFC); } public static String sanitize(final String s, final String d) { if (StringUtils.isBlank(s)) { return d; } return s.trim(); } public static String icu4jNormalize(final String input) { if (input == null) { return input; } Transliterator normalizer = Transliterator.getInstance("NFD; [:Nonspacing Mark:] Remove; NFC;"); String temp = normalizer.transliterate(input); return temp; } public static boolean isInteger(String input) { try { Integer.parseInt(input); return true; } catch (Exception e) { return false; } } public static String center(String text, int length) { if (text == null) { text = ""; } if (text.length() > length) { return text.substring(0, length); } return StringUtils.center(text, length); } public static String wraptext(String text, int length, String delimiter) { return WordUtils.wrap(text, length, delimiter, true); } public static String formatStringUser(String name) { return name.replaceAll("[-'_]", " "); } public static String incrementLastChar(String text) { if (StringUtils.isBlank(text)) { return text; } return text + "zzzzzzzzzzzzzzzzz"; } public static boolean endsInValidCharacter(String str) { String lastChar = String.valueOf(str.charAt(str.length() - 1)); return TextUtils.removeDiacriticals(lastChar).matches("[0-9a-zA-Z]"); } }