package com.rjconsultores.ventaboletos.utilerias; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; public class StringHelper { public static final String QUEBRA_LINHA = "\r\n"; private static String[] REPLACES = { "a", "e", "i", "o", "u", "c", "A", "E", "I", "O", "U", "C" }; private static Pattern[] PATTERNS = null; private StringHelper() { } private static void compilePatterns() { PATTERNS = new Pattern[REPLACES.length]; PATTERNS[0] = Pattern.compile("[âãáàä]"); PATTERNS[1] = Pattern.compile("[éèêë]"); PATTERNS[2] = Pattern.compile("[íìîï]"); PATTERNS[3] = Pattern.compile("[óòôõö]"); PATTERNS[4] = Pattern.compile("[úùûü]"); PATTERNS[5] = Pattern.compile("[ç]"); PATTERNS[6] = Pattern.compile("[ÂÃÁÀÄ]"); PATTERNS[7] = Pattern.compile("[ÉÈÊË]"); PATTERNS[8] = Pattern.compile("[ÍÌÎÏ]"); PATTERNS[9] = Pattern.compile("[ÓÒÔÕÖ]"); PATTERNS[10] = Pattern.compile("[ÚÙÛÜ]"); PATTERNS[11] = Pattern.compile("[Ç]"); } public static String replaceAcento(String text) { if (PATTERNS == null) { compilePatterns(); } String result = text; for (int i = 0; i < PATTERNS.length; i++) { Matcher matcher = PATTERNS[i].matcher(result); result = matcher.replaceAll(REPLACES[i]); } return result; } public static String retornaSomenteNumeros(String str) { if (str != null) { return str.replaceAll("[^0123456789]", ""); } else { return ""; } } public static String removeStringEsquerda(String str, String strRemover) { if (str != null) { str = StringUtils.stripStart(str, strRemover); return str; } else { return ""; } } public static String preencherStringEspacoDireita(String str, int tamanho) { return preencherStringDireita(str, tamanho, StringUtils.EMPTY); } public static String preencherStringEspacoEsquerda(String str, int tamanho) { return preencherStringEsquerda(str, tamanho, StringUtils.EMPTY); } public static String preencherZeroDireita(String str, int tamanho) { return preencherStringDireita(str, tamanho, "0"); } public static String preencherZeroEsquerda(String str, int tamanho) { return preencherStringEsquerda(str, tamanho, "0"); } public static String preencherZeroEsquerda(Integer val, int tamanho) { String value = val == null ? "" : val.toString(); return preencherStringEsquerda(value, tamanho, "0"); } public static String preencherStringDireita(String str, int tamanho, String preenchimento) { if (str != null) { if (str.length() > tamanho) { str = str.substring(0, tamanho); } else { str = StringUtils.rightPad(str, tamanho, preenchimento); } return str; } else { return StringUtils.rightPad(StringUtils.EMPTY, tamanho, preenchimento); } } public static String preencherStringEsquerda(String str, int tamanho, String preenchimento) { if (str != null) { if (str.length() > tamanho) { str = str.substring(0, tamanho); } else { str = StringUtils.leftPad(str, tamanho, preenchimento); } return str; } else { return StringUtils.leftPad(StringUtils.EMPTY, tamanho, preenchimento); } } public static String preencherPipeDireita(String str, int tamanho) { if (str != null && !StringUtils.isEmpty(str)) { if (str.length() > tamanho) { str = str.substring(0, tamanho); } str = StringUtils.rightPad(str, str.length() + 1, "|"); return str; } else { return "|"; } } public static String preencherPipeDireita(String str) { if (str != null && !StringUtils.isEmpty(str)) { str = StringUtils.rightPad(str, str.length() + 1, "|"); return str; } else { return "|"; } } public static String divideEFormata(String str) { DecimalFormatSymbols symbols = new DecimalFormatSymbols(); symbols.setDecimalSeparator(','); DecimalFormat formatador = new DecimalFormat("0.00", symbols); String valor = "0"; if (str != null) { valor = new BigDecimal(str).divide(new BigDecimal(100)).toString(); } return formatador.format(new BigDecimal(valor)); } public static Boolean isNumeric(String str) { return StringUtils.isNumeric(str); } }