Converter primeira letra em maiuscula [Resolvido]

alguem conhece algum método bem simples para transformar a primeira letra de uma string em maiúsculas?

variavél

String s = "silva";

saida desejada

String saida = "Silva";

tem que pegar a primeira letra e usar o metodo, acho que é uppercase…

vou verificar, e ver se faço algum código.

[code]
public class Maiuscula {
public String silva=“silva”;
public String posicao="";
public Maiuscula() {
posicao= “”+silva.charAt(0);
String pos=posicao.toUpperCase();
System.out.println(“posicao”+posicao);
System.out.println(“posicao”+pos);
}
public static void main(String[]args) {
new Maiuscula();

}

}[/code]

Eu pensei que o java já tivesse algo pronto.

deve have algo com menos código.

1 curtida

hum, acho que não , hein?

mas não é tanto assim…

porque vc acha que tem coisa menor… ??? e para que?

É que tem classes prontas para trabalhar com String e isso é algo bem simples para se pensar pensei que já estivesse encapsulado em algum método.

Mas beleza.

Vlw pela força.

agora mais completo, aí com este estudo , da de fazer o metodo que recebe a string, entao para toda string, acontecerá isto…

[code]
public class Maiuscula {
public String silva=“silva”;
public String posicao="";
String mais="";
public Maiuscula() {
posicao= “”+silva.charAt(0);
String pos=posicao.toUpperCase();
String tudo=pos;
int tamanho=silva.length();
for(int i=1;i<silva.length();i++){
mais=mais+silva.charAt(i);
}
tudo=pos+mais;
System.out.println(“posicao:”+posicao);
System.out.println(“posicao:”+pos);
System.out.println(“tamanho:”+tamanho);
System.out.println(“tudo:”+tudo);

}    

public static void main(String[]args) {
    new Maiuscula();

}

}[/code]

aí criado o método, é só usar e será como se fosse bem pequeno, como vc falou…
ok? :roll:

uma com metodo:

[code]
public class Maiuscula {
public String silva=“silva”;
public String posicao="";
String mais="";
public Maiuscula() {

}     

public Maiuscula(String silva) {
    posicao= ""+silva.charAt(0);
    String pos=posicao.toUpperCase();
    String tudo=pos;
    int tamanho=silva.length();
    for(int i=1;i<silva.length();i++){
        mais=mais+silva.charAt(i);
    }
    tudo=pos+mais;
    System.out.println("tudo:"+tudo);
        
}    

public static void main(String[]args) {
   new Maiuscula("raghy");  
   new Maiuscula("alfredo");  
 

}

}[/code]

aí talvez o ideal seja, separar por espaço, uma nova maiuscula. :shock: :roll:

agora fiz a obra-prima completa… o método funcionando perfeitamente, se não existia, agora existe… hihi 8)

[code]
public class Maiuscula {

String silva="";
String posicao="";
String mais="";
String tudo="";
String maiuscula2="";


public Maiuscula() {                 
}     



public Maiuscula(String silva) {
    posicao=""+silva.charAt(0);//pega a primeira letra que sera maiuscula
    String pos=posicao.toUpperCase();    //transforma em maiuscula
    
    int tamanho=silva.length();//ve o tamanho da frase
    for(int i=1;i<silva.length();i++){  //coloca o for de acordo com o tamanho
        mais=mais+silva.charAt(i); //acrescenta as letras
     
   if( silva.charAt(i) == ' '){  //se houver um espaço a próxima vai ser transformada em maisucula.
       String maiuscula=""+silva.charAt(i+1);//pega a próxima apos o espaço  
       maiuscula2=maiuscula.toUpperCase();       //transforma em maiuscula.
       mais=mais+maiuscula2;//acrescenta a maiuscula a palavra completa, que se chama mais
       i=i+1; //soma um, pois uma letra minuscula foi substituida e ja foi acrescentada                                 
   } } tudo=pos+mais;        
  System.out.println("tudo:"+tudo);            
}    

public static void main(String[]args) {
   new Maiuscula("raghy");  
   new Maiuscula("alfredo");      
   new Maiuscula("raghy jose sobierajski rebelo");  
   new Maiuscula("Agora posso escrever frases enormes em minusculas que serao passadas a primeira letra para maisucula");
 

}

}[/code]

run-single:
tudo:Raghy
tudo:Alfredo
tudo:Raghy Jose Sobierajski Rebelo
tudo:Agora Posso Escrever Frases Enormes Em Minusculas Que Serao Passadas A Primeira Letra Para Maisucula
EXECUTADO COM SUCESSO (tempo total: 2 segundos)

:lol: :shock: :roll:

1 curtida

[quote=Algebra]alguem conhece algum método bem simples para transformar a primeira letra de uma string em maiúsculas?

variavél

String s = "silva";

saida desejada

String saida = "Silva"; [/quote]

saida = s.substring(0,1).toUpperCase() + s.substring(1);

Uma opção é utilizar o apache commons language.

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/WordUtils.html

WordUtils.capitalize(“joão de souza”) = “João De Souza”

Abraço

[quote=Algebra]alguem conhece algum método bem simples para transformar a primeira letra de uma string em maiúsculas?

variavél

String s = "silva";

saida desejada

String saida = "Silva"; [/quote]

E ai Algebra blz… faça algo como:

//a String de Entrada
String teste = “silva” ;

//pega a posição da primeira letra da String
String saida1 = teste.substring(0, 1).toUpperCase();

//pega a posição das outras letras após a primeira
String saida2 = teste.substring(1);

// concatena tudo isso e mostra a saida
System.out.println("#################################" + saida1.concat(saida2));

Implementei esta. Testa aí…

public class Maiuscula {

	
	public static void main(String[] args) {
		String nome = "Agora posso escrever frases enormes em minusculas que serao passadas a primeira letra para maiuscula";
		
		System.out.println(iniMaiuscula(nome));
	}
	
	public static String iniMaiuscula(String value) {
		String result = "";
		String[] nomes = value.split(" ");
		
		for(String palavra : nomes){
			result = result + " " + palavra.replaceFirst(palavra.substring(0, 1), palavra.substring(0, 1).toUpperCase());
		}
		return result.trim();
	}
}

[quote=Flavio Almeida]Uma opção é utilizar o apache commons language.

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/WordUtils.html

WordUtils.capitalize(“joão de souza”) = “João De Souza”

Abraço
[/quote]

Era isso que eu estava me referindo, o algoritmo é facil pensar, eu gostaria de saber se existia alguma classe que faz isso que o Flavio citou acima.

Obrigado pessoal.

interessante este método, do flavio,

mas aqui nao funcionou…

C:\Documents and Settings\raghyjose\Testes2\src\testes2\Maiuscula.java:53: cannot find symbol
symbol  : variable WordUtils
location: class testes2.Maiuscula
       WordUtils.capitalize("joão de souza") = "João De Souza"; 
1 error
FALHA NA EXECUÇÃO (tempo total: 2 segundos)

o que falta?

[quote=raghy]interessante este método, do flavio,

mas aqui nao funcionou…

C:\Documents and Settings\raghyjose\Testes2\src\testes2\Maiuscula.java:53: cannot find symbol
symbol  : variable WordUtils
location: class testes2.Maiuscula
       WordUtils.capitalize("joão de souza") = "João De Souza"; 
1 error
FALHA NA EXECUÇÃO (tempo total: 2 segundos)

o que falta?
[/quote]

http://commons.apache.org/lang/download_lang.cgi

[quote=novato25]Implementei esta. Testa aí…

[code]
public class Maiuscula {

public static void main(String[] args) {
	String nome = "Agora posso escrever frases enormes em minusculas que serao passadas a primeira letra para maiuscula";
	
	System.out.println(iniMaiuscula(nome));
}

public static String iniMaiuscula(String value) {
	String result = "";
	String[] nomes = value.split(" ");
	
	for(String palavra : nomes){
		result = result + " " + palavra.replaceFirst(palavra.substring(0, 1), palavra.substring(0, 1).toUpperCase());
	}
	return result.trim();
}

}
[/code][/quote]

novato25, seu método pode ser substituído pelo WordUtils.capitalize do commons language do Apache. A idéia é fazer com que ele possa excluir as preposições.

System.out.println(StringUtils.capitalize(“palavra”));

Result: Palavra