Capitalizar Strings en Java

Capitalizar una palabra, significa poner la palabra con la primera letra en mayusculas y el resto en minusculas . (Vamos las reglas basicas del colegio para nombres propios y cosas asi....).

Por ejemplo, este texto: "antonio belmonte" , capitalizado seria "Antonio Belmonte".

Aqui os pongo una clase, con metodos estaticos para capitalizar Strings:

Para capitalizar cualquier frase entera o texto entero basta con llamar a la funcion capitalize (String text) a secas y esta utilizara los otros metodos para montar la frase.

Espero os sea de ayuda:



import org.apache.commons.lang.StringUtils;

public class FormatUtils {

    public static String capitalize(String text){
        if(!StringUtils.isEmpty(text)){
            StringBuffer sbt= new StringBuffer();
            String[] partialText = text.split(" ");
            for(int i=0;i< partialText.length;i++){
                if(partialText[i].contains("-")){ //composite words
                    sbt.append(capitalizeWithLine(partialText[i]));
                }else{
                    sbt.append(capitalizeWord(partialText[i]));
                    sbt.append(" ");
                }
            }
            return sbt.toString().trim(); //only for entire phrase
        }
        return text;
    }
   
    public static String capitalizeWord(String word){
        if(!StringUtils.isEmpty(word)){
            StringBuffer sb = new StringBuffer();
            sb.append(String.valueOf(word.charAt(0)).toUpperCase());
           
            if(word.length()>= 2)
                sb.append(word.substring(1).toLowerCase());
           
            return sb.toString();
        }
        return word;
    }
   
    public static String capitalizeWithLine (String wordWithLine){
        StringBuffer res = new StringBuffer();
        String[] partialTextWithLine = wordWithLine.split("-");
        for(int r=0;r<partialTextWithLine.length;r++){
            res.append(capitalizeWord(partialTextWithLine[r]));
            if(r+1<partialTextWithLine.length) //not append to end
                res.append("-");
        }
        return res.toString();
    }
}



Para usarlo:

    public static void main(String[] args) {
        String texto = "marco-antOnio  jueaIcoS del mOnte-Perdido";
        String res = FormatUtils.capitalize(texto);
        System.out.println(res);

    }

Comentarios

Entradas populares de este blog

Subir campos Blob a BBDD (Oracle) con Java

Reiniciar usuario de SVN Subversion

Cucumber y Java - definiendo test de una manera amigable