Procurando algo?

quarta-feira, 15 de setembro de 2010

Primeiras letras maiúsculas

Que tal um pouco de C#?

Bom, hoje tive uma curiosidade e pesquisei sobre métodos de tornar a primeira letra de cada palavra maiúscula.

Ví soluções diferentes, e a que mais tem um usando cadeia caracteres. Vejam:
private string Maiuscula(string value)

{

 char[] resultado = value.ToCharArray();

 
 // Torna o primeiro caracter maiúsculo
 resultado[0] = char.ToUpper(resultado[0]);

 for (int i = 1; i < resultado.Length; ++i)

 {
  if (char.IsWhiteSpace(resultado[i - 1]))
   // Torna o caracter maiúsculo se precedido de espaço

   resultado[i] = char.ToUpper(resultado[i]);
  else

   // Torna todos os outros caracteres minúsculos
   resultado[i] = char.ToLower(resultado[i]);

 }

 return new string(resultado);

}


Interessante, não? Também pode-se utilizar no .NET uma classe chamada StringBuilder, que é muito boa para formar strings de outras strings. Vejam:


public static string Maiuscula(string value)

{
 StringBuilder result = new StringBuilder(value);

 
 // Torna o primeiro caracter maiúsculo
 resultado[0] = char.ToUpper(resultado[0]);


 for (int i = 1; i < result.Length; ++i)

 {
  if (char.IsWhiteSpace(resultado[i - 1]))
   // Torna o caracter maiúsculo se precedido de espaço
   resultado[i] = char.ToUpper(resultado[i]);
  else
   // Torna todos os outros caracteres minúsculos

   resultado[i] = char.ToLower(resultado[i]);

 }
 return resultado.ToString();

}



E aí, qual acham que é mais eficiente e tem melhor performance?