ToUPPER ToLOWER ---?

Tudo Bom pessoal, Bom Dia…

Bom estou com uma duvida em meu ambiente de trabalho…

por exemplo:

quando quero deixar as letras maiusculas utilizo,

ToUPPER—certo;

quando quero deixar as letras minusculas utilizo,

ToLOWER—certo;

a pergunta é?

e quando quero deixar a primeira letra maiuscula e o resto minuscula como faço???

thank’s 8)

Uma maneira string.substring( 0, 1 ).toUpperCase() + string.substring( 1 );

A.K.A.: capitalizar

Como poderia dizer, obrigado,
mais não teria uma maneira mais elegante para fazer…

valew…

Talvez, sempre tem…

String primeiraLetra = string.substring( 0, 1 ).toUpperCase(); String restanteString = string.substring( 1 ); String capitalizada = primeiraLetra + restanteString; return capitalizada;

Assim? Para esse caso acho um certo exagero. Mas vale.

Se vai usar muito isso pode criar um metodo numa classe utilitária e todo mundo chama esse método:

public String capitalizarString(String texto){
     return texto.substring( 0, 1 ).toUpperCase() + texto.substring( 1 );
}

// outra classe
String capitalizada = classeUtil.capitalizarString("BLABLABLA");

Sim, no meu caso é assim.

da pra evitar ficar criando esse monte de strings temporárias, eu faria assim:

public static String toAlgumaCoisa(String str)
{
	byte b[] = str.getBytes();
	b[0] = b[0] >= 97 && b[0] <= 122 ? (byte) (b[0] - 32) : b[0];

	return new String(b);
}

flw, t+

[quote=quikkoo][quote=Sorriso]
Como poderia dizer, obrigado,
mais não teria uma maneira mais elegante para fazer…
[/quote]

da pra evitar ficar criando esse monte de strings temporárias, eu faria assim:

public static String toAlgumaCoisa(String str)
{
	byte b[] = str.getBytes();
	b[0] = b[0] >= 97 && b[0] <= 122 ? (byte) (b[0] - 32) : b[0];

	return new String(b);
}

flw, t+[/quote]

Só funciona pra ASCII(ou no máximo 8859-1/15). Java trabalha em Unicode.

Pô, isso aqui não vai matar ninguém. Menos no preciosismo né…

public String capitalizarString(String texto){ return texto.substring( 0, 1 ).toUpperCase() + texto.substring( 1 ); }

Converter para bytes é perigoso. É melhor, mais seguro e mais rápido, converter para caracteres mesmo.

No seu caso, você poderia ter algo como:

class Capitalize {

    // "Capitalização" ingênua - só converte a primeira inicial para maiúsculas. 
    public static String capitalize (final String str) {
	    char[] chars = str.toCharArray();
		if (chars.length >= 1) 
		    chars[0] = Character.toUpperCase (chars[0]);
		return new String(chars);
	}
	// Esta é uma normalização mais completa, mas pode ter alguns problemas também.
	// Um deles, como você deve perceber, é que ela não preserva os espaços.
	// Outra é que certas partículas nos nomes serão também passadas para maiúsculas - não é esquisito "João Da Silva"?
	// Para tanto, você pode alterar "ret.append (capitalize (partes[i])" para checar
	// se a partícula deve ou não ser capitalizada.
	public static String capitalize2 (final String str) {
		String[] partes = str.split ("\\s+");
		StringBuilder ret = new StringBuilder (str.length());
		for (int i = 0; i < partes.length; ++i) {
		    if (i != 0) ret.append (" ");
			ret.append (capitalize (partes[i]));
		}
		return ret.toString();
	}

    public static void main(String[] args) {
	    System.out.println (capitalize ("java"));
	    System.out.println (capitalize2 ("joao da silva paredes"));
	}
}

em casa eu utilizo Java 5. Nessa versão da API, ja existe a classe StringUtils, também existe uma versão da StringUtils (que é mais utilizada) nos jar da apache commons lang.

Testei com a classe da api do java, mas não obtia o resultado esperado quando utilizado para mais de uma palavra ou o testo estivesse no formato pAlAvRa. por isso criei um método capitalieAll. Segue o código abaixo:

import com.sun.xml.internal.ws.util.StringUtils;

public class Capitalizar {
	public static void main(String[] args) {
		System.out.println(capitalizeAll("leanDRO anjOs nASCIImento"));
	}

	public static String capitalizeAll(String s) {
		if (s != null) {
			String newString = s.toLowerCase();
			String[] array = newString.split(" ");
			newString = "";
			for (int i = 0; i < array.length; i++) {
				newString += StringUtils.capitalize(array[i]) + " ";
			}
			s = newString.trim();
		}
		return s;
	}
}

Valew rapaziada consegui, fiz direto no meu select…

na especificação do sistema não consta se a pessoa vai ter que digitar com a primeira letra maiuscula
ou não, ela pode digitar da form que quizer então para verificar nomes iguais tipo

–> Sorriso e --> sorriso

fiz no select que compara os dois, tentei usar o ‘equalsIgnoreCase’ mais não deu o resultado esperado…

exemplo select:

select * from tabela where upper(nome_do_atributo) = upper(?) funcionou perfeitamente…