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

8 respostas
Lavieri

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

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

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

8 Respostas

celso.martins
Lavieri:
Desculpa ate perguntar auhau ... mais meu reciocinio hoje ta lento.... queria algo simples ...
String s = objeto.getClass().getSimpleName() ;

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

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

Lavieri

é 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 ?

Lavieri

celso.martins:

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

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

celso.martins

é 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 ?

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

Allan_BSO
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:

Ayanami

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:

Allan_BSO

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);

	}
}
celso.martins

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 :)

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.

Criado 13 de dezembro de 2008
Ultima resposta 13 de dez. de 2008
Respostas 8
Participantes 4