Formatando nomes

4 respostas
maugloju

Olá pessoal, será que alguem sabe de alguma função que, passando uma string me rtorne a primeira letra de cada palavra em maiúsculo e o resto em minúsculo.

Antecipadamente agradeço.

4 Respostas

xandevieira

tem esse ex. q o thingol postou neste topico:http://www.guj.com.br/posts/list/121727.java#658595

sugiro vc passar o parametro tudo em minusculo, pq o metodo esta tratando somente como minuscula. ja eh um começo

/**
 * Retorna uma string onde a letra inicial de cada palavra é passada para maiúscula.
 * Exemplo: "joão de oliveira" -> "João De Oliveira"
 * @param str A string a ser convertida.
 * @return A string convertida.
 */
public static String capitalize (String str) {
    char[] letras = str.toCharArray();
    for (int i = 0; i < letras.length; ++i) {
        if (i == 0 || !Character.isLetterOrDigit (letras[i-1])) {
            letras[i] = Character.toUpperCase (letras[i]);
        }
    }
    return new String (letras);
}
maugloju

Pessoal, me passaram uma solução legal utilizando

import org.apache.commons.lang.StringUtils; org.apache.commons.lang.StringUtils.capitaliseAllWords(texto);

funciona blz, mesmo assim obrigado, vlw

xandevieira

de qq forma tem q tratar no caso de vier uma frase com maiusculas e minusculas no meio da palavra.
ex. fRase eXemplo
Sem tratamento fica assim: FRase EXemplo
o tratamento seria nd mais q colocar um toLowerCase().

maugloju

Bom no meu caso a coisa é bem simples, eu tratei com o toLowerCase e depois usei o

org.apache.commons.lang.StringUtils.capitaliseAllWords(texto);

mas vc tem razão, cada caso é um caso se precisar tratar mais que a primeira letra de cada palavra é melhor usar a outra maniera, de acordo com as necessidades.

Um abraço, e vlw

Criado 4 de junho de 2009
Ultima resposta 4 de jun. de 2009
Respostas 4
Participantes 2