LowerCase so no 1° caracter ... como fazer?

Desculpa ate perguntar auhau … mais meu reciocinio hoje ta lento… queria algo simples …

[code]String s = objeto.getClass().getSimpleName() ;

//Como fazer só o 1° caracter de S ir pra LowerCase ??? obrigado ^^[/code]

[quote=Lavieri]Desculpa ate perguntar auhau … mais meu reciocinio hoje ta lento… queria algo simples …

[code]String s = objeto.getClass().getSimpleName() ;

//Como fazer só o 1° caracter de S ir pra LowerCase ??? obrigado ^^[/code][/quote]

Bem, como há muito não contribuo (pois estou fazendo um trabalho dentro do cliente) e estava passando por aqui, resolvi entrar.

Vamos lá.

Neste teu caso, se a primeira letra do nome da classe de “objeto” for maiúscula (padrão) ele já vai te retornar dessa forma, não precisa se preocupar.

ex:

String teste = "";
String s = teste.getClass().getSimpleName() ;
System.out.println(s);

vai retornar String

Caso não seja (esteja fora do padrão), não entendo para que você quer mudar, entretanto, requisito é requisito.

    	String teste = "";
    	String s = teste.getClass().getSimpleName();
    	s = s.toLowerCase(); // No meu caso, tenho que jogar para caixa baixa para fazer a brincadeira
    	
    	System.out.println("String antes da transformação: " + s);
    	s = s.replace(s.substring(0,1), s.substring(0,1).toUpperCase());
    	System.out.println("String após a transformação: " + s);

Abraços

é LowerCase … e não Upper ^^ mais tanto faz… C me respondeu mesmo assim \o/ … precisava deixar so a primeira pra minuscula… tipo

MeuObjetoDeNomeDoido a = new MeuObjetoDeNomeDoido ();

String s = a.getClass().getSimpleName();

ai precisava reduzir so a 1° letra pra minusculo… \o/ e sua resposta ja me server… vlw mesmo

Duvida… ele so vai subistituir o 1° ne ? … não vai tenrar subistiuir + de 1 vez ?

[quote=celso.martins]…
Caso não seja (esteja fora do padrão), não entendo para que você quer mudar, entretanto, requisito é requisito…[/quote]

so respondendo… é pq fiz um método generico para um Hibernate, fazer uma consulta no banco de dados

protected List<T> genericFindFrom(IPersistente entidade) { //Nome da Entidade String en = entidade.getClass().getSimpleName(); //Nome da propriedade da entidade String pen = en.replace(en.substring(0, 1), en.substring(0, 1).toLowerCase()); return (List<T>)currentSession() .getNamedQuery(getEntidadeClass().getSimpleName() +".from" + en) .setEntity(pen, entidade) .list(); }

Aplicacação seri

public List<Cidade> findFrom(Pais pais) { return super.genericFindFrom(pais); }

que no caso faz uma consulta do tipo

return (List<Cidade>)currentSession() //Note que Pais aqui precisa ser maiusculo .getNamedQuery("Cidade.fromPais") //note que aqui é minusculo, pois se trata de 1 propriedade de Cidade .setEntity("pais", entidade) .list();
Vlw pela ajuda

é LowerCase … e não Upper ^^ mais tanto faz… C me respondeu mesmo assim \o/ … precisava deixar so a primeira pra minuscula… tipo

MeuObjetoDeNomeDoido a = new MeuObjetoDeNomeDoido ();

String s = a.getClass().getSimpleName();

ai precisava reduzir so a 1° letra pra minusculo… \o/ e sua resposta ja me server… vlw mesmo

Duvida… ele so vai subistituir o 1° ne ? … não vai tenrar subistiuir + de 1 vez ?[/quote]

Maravilha. Atirei no que vi e acertei no que não vi. Estou, como costumo dizer, em pé sem cair e deitado sem dormir. Estou me capacitando em BPM, SOA, estudando o Effective Java, Refactoring, fazendo o trabalho dentro do cliente que falei (que também é estudo/capacitação), sendo pai e marido. =)
A única forma que consegui para ampliar meu dia foi dormir até 4 horas por dia. Estou injetando cafeína na veia do pé, para não dar problema de úlcera. :wink:

Mas, respondendo a sua pergunta, ele vai substituir todos. Para somente o primeiro utilize replaceFirst.

Inclusive dá ensejo a uma dúvida. Alguém sabe a diferença entre replace e replaceAll? Vou fazer uns testes para ver se descubro, enquanto relaxo do BPM. =)

Abraços

import java.util.Scanner;

public class MaiusculoPrimeiraLetra {
	public static void main(String args[]){
		Scanner input = new Scanner(System.in);
		
		// nome em minusculo.
		String nomeMinusculo = input.next();
		
		// peca primeira letra em transforma a mesma em Maiusculo
		String primeiraLetra = nomeMinusculo.toUpperCase().substring(0, 1);
		
		// restante do nome em minusculo.
		String nomeMinusculo1 = nomeMinusculo.substring(1, nomeMinusculo.length()); 
		
		// concatena ambas as partes
		String nomePrimeiraLetraEmMaicuculo =  primeiraLetra+nomeMinusculo1; 
		
		// exibe resultado.
		System.out.print(nomePrimeiraLetraEmMaicuculo);

	}
}

Para fazer o contrário basta alterar o método para LowerCase.

:wink:

1 curtida

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html

e tópico a respeito: http://www.guj.com.br/posts/list/68545.java :slight_smile:

celso.martins…

não conhecia o método Replace… valeu a dica ai amigão…

import java.util.Scanner;

public class MaiusculoPrimeiraLetra {
	public static void main(String args[]){
		Scanner input = new Scanner(System.in);
		
		// nome em minusculo.
		String strNome = input.next();
		
		strNome = strNome.replaceFirst(strNome.substring(0, 1), strNome.substring(0, 1).toUpperCase());
		
		System.out.print(strNome);

	}
}

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html

e tópico a respeito: http://www.guj.com.br/posts/list/68545.java :)[/quote]

Verdade, não tinha visto.

Só que consigo fazer o replaceAll com CharSequence.

O código abaixo funciona da mesma forma com replace.

s = s.replaceAll(s.substring(0,1), s.substring(0,1).toLowerCase());

Então, acho que a diferença seria: com replaceAll eu posso usar regex. Não que eu tenha que usar. =)

Valeu pela explicação e links.

Abraços.