FORMATAR STRING

DJSTRONG 03/12/2010 13:33:22
#358725
Ola pessoal!
Sou novato por aqui e estou começando no C#, por isso precisava da vossa ajuda!
é o seguinte:
Preciso desenvolver uma função que consiga formatar o nome de uma pessoa.
Exemplo:
O nome Jorge Miguel Fonseca Araujo deverá ser apresentado: ARAUJO, Jorge, M. F.

Agradecia a quem me ajudasse!

Obrigado pessoal!
JONATHANSTECKER 03/12/2010 13:58:01
#358730
Resposta escolhida
Dessa maneira, estou formatando exatamente conforme seu exemplo.
Mas é claro que você terá que adaptar conforme a lógica a ser utilizada.

        private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(FormatarNome([Ô]Jorge Miguel Fonseca Araujo[Ô]));
}

private string FormatarNome(string pNome)
{
string[] NomeSeparado = pNome.Split([ô] [ô]);

StringBuilder NomeFormatado = new StringBuilder();
NomeFormatado.Append(NomeSeparado[3].ToUpper());
NomeFormatado.Append([Ô], [Ô]);
NomeFormatado.Append(NomeSeparado[0]);
NomeFormatado.Append([Ô], [Ô]);
NomeFormatado.Append(NomeSeparado[1].Substring(0, 1));
NomeFormatado.Append([Ô]. [Ô]);
NomeFormatado.Append(NomeSeparado[2].Substring(0, 1));
NomeFormatado.Append([Ô].[Ô]);

return NomeFormatado.ToString();
}
DJSTRONG 03/12/2010 14:41:52
#358740
Desde já muito obrigado Jonathan Stecker!

Mas essa função não funciona se o nome for Miguel Fonseca Araujo, em que o resultado teria de ser: ARAUJO, Miguel, F.

Tenho de fazer uma função preparada para qualquer nome...
Desculpe a minha chatice, mas é q sou msm novato nisto...
JONATHANSTECKER 03/12/2010 14:53:33
#358741
Citação:

Mas é claro que você terá que adaptar conforme a lógica a ser utilizada.



é só você adequar essa função para o seu uso. Não sei as regras do negócio que você está aplicando.
Mas qualquer dúvida, poste ai.

Ajustei a função. Mas será obrigatório ter no mínimo 2 nomes e no máximo 4.

private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(FormatarNome([Ô]Jorge Miguel Fonseca Araujo[Ô]));
MessageBox.Show(FormatarNome([Ô]Jorge Miguel Araujo[Ô]));
MessageBox.Show(FormatarNome([Ô]Jorge Araujo[Ô]));
}

private string FormatarNome(string pNome)
{
string[] NomeSeparado = pNome.Split([ô] [ô]);

StringBuilder NomeFormatado = new StringBuilder();
NomeFormatado.Append(NomeSeparado[NomeSeparado.Length - 1].ToUpper());
NomeFormatado.Append([Ô], [Ô]);
NomeFormatado.Append(NomeSeparado[0]);
if (NomeSeparado.Length >= 3)
{
NomeFormatado.Append([Ô], [Ô]);
NomeFormatado.Append(NomeSeparado[1].Substring(0, 1));
NomeFormatado.Append([Ô]. [Ô]);

if (NomeSeparado.Length == 4)
{
NomeFormatado.Append(NomeSeparado[2].Substring(0, 1));
NomeFormatado.Append([Ô].[Ô]);
}
}

return NomeFormatado.ToString();
}
DJSTRONG 03/12/2010 15:14:34
#358744
Muito obrigado amigo!

Ja fiquei a perceber um pouco do funcionamento da classe StringBuilder.

Este seu exemplo foi muito útil!
JONATHANSTECKER 03/12/2010 15:23:56
#358746
A classe StringBuilder é muito poderosa! Muito boa para tratamentos de Strings e muito eficaz.

Só não se esqueça de finalizar o tópico e pontuar.
Tópico encerrado , respostas não são mais permitidas