Estou postanto essa classe pois tentei achar mas não encontrei nenhuma classe em Java que fizesse o que eu estava procurando. Formatar um valor usando uma mascara que eu passei.
Abaixo o classe completa que faz isso.
public class MaskFormat{
private static final long serialVersionUID = 1L;
private String vMask;
private String vValue;
private boolean vReturnValueEmpty;
public static String getValueMaskFormat(String pMask, String pValue,
boolean pReturnValueEmpty){
/*
* Verifica se se foi configurado para nao retornar a
* mascara se a string for nulo ou vazia se nao
* retorna somente a mascara.
*/
if (pReturnValueEmpty == true
&& (pValue == null || pValue.trim().equals("")))
return "";
/*
* Substituir as mascaras passadas como 9, X, * por # para efetuar a formatcao
*/
pMask = pMask.replaceAll("*", "#");
pMask = pMask.replaceAll("9", "#");
pMask = pMask.toUpperCase().replaceAll("X", "#");
/*
* Formata valor com a mascara passada
*/
for(int i = 0; i < pValue.length(); i++){
pMask = pMask.replaceFirst("#", pValue.substring(i, i + 1));
}
/*
* Subistitui por string vazia os digitos restantes da mascara
* quando o valor passado é menor que a mascara
*/
return pMask.replaceAll("#", "");
}
public static String getValueMaskFormat(String pMask, String pValue){
return getValueMaskFormat(pMask, pValue, true);
}
public String getMask(){
return vMask;
}
public void setMask(String mask){
vMask = mask;
}
public String getValueMaskFormat(){
return getValueMaskFormat(getMask(), getValue(), isReturnValueEmpty());
}
public String getValue(){
return vValue;
}
public void setValue(String value){
vValue = value;
}
public boolean isReturnValueEmpty(){
return vReturnValueEmpty;
}
public void setReturnValueEmpty(boolean pReturnValueEmpty){
vReturnValueEmpty = pReturnValueEmpty;
}
}