Preciso de ajuda

Caros colegas tenho um trabalho em que me pedem para criar um form em c# e que consiga fazer o seguinte:

Pretende-se desenvolver uma função que consiga formatar o nome de uma pessoa segundo as regras das paginas amarelas. por exemplo Ricardo Jorge Saraiva Gonçalves deverá ser apresentado como Gonçalves, Ricardo, J. S.

preciso de ajuda pois em c# nao consigo fazer este programa:confused:

desde ja o muito obrigado a todos que ajudam e a este forum maravilhoso
 
Fazes um split do texto e armazena-lo num array. depois na string é so pores a ultima posicao do array em primeiro, a primeira posicao em segundo e o resto só a aparecer a primeira letra.

Espero ter ajudado, porque sem o vs à mão é um bocado complicado :P
 
Bom, claramente que não é isso. Edita o teu post e remove esse texto, uma vez que não é particularmente útil :007:. Coloca o código que se encontra no ficheiro com extensão .cs.
 
caros colegas eu consegui fazer o programa mas tem um pekeno erro que nao sei o pk de ele nao funcionar:

o erro é o seguinte se o nome tiver 4 nomes ele altera acima dos 4 nomes ele ja nao altera agradecia se me pudessem ajudar e dizer o que esta mal, pk eu ja procurei tudo e nao encontro junto envio o codigo produzido até agora:

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Paginas_Amarelas
{
class Program
{
static string proced(int x, char[] pagi)
{
string s_esp = "", ponto = ". ";
s_esp = s_esp + char.ToUpper(pagi[x]);
s_esp = s_esp + ponto;
return (s_esp);
}
static void Main(string[] args)
{
string x, virgula = ", ", maiuscula = "";
int resultado = 0;
int cont = 0, cont1 = 0, cont4 = 0, pa, cont2, cont3; 
int c = 0, i = 0, cac = 0;
 
 
Console.WriteLine("Insira o nome:");
x = Console.ReadLine();
char[] pag = x.ToCharArray(); 
i = pag.Length - 1;
 
while (i > 0)
{
if (pag[i] == ' ')
{
c = i;
cac = c;
resultado = pag.Length - 1 - cont;
break;
}
i--;
cont++;
}
 
c = c + 1;
while (c <= pag.Length || resultado > 0)
{
if (c == pag.Length)
{
maiuscula += virgula;
break;
}
while (c < pag.Length)
{
maiuscula += char.ToUpper(pag[c]);
c++;
}
}
 
cont3 = 0;
maiuscula = maiuscula + char.ToUpper(pag[cont3]);
while (pag[cont3 + 1] != ' ')
{
maiuscula = maiuscula + char.ToLower(pag[cont3 + 1]);
cont3++;
}
maiuscula = maiuscula + virgula;
resultado = resultado - (++cont3);
cont1 = cont3 + 1;
cont2 = cont1 - 1;
cont4 = cont;
pa = 0;
while (pa <= pag.Length)
{
if (pag[cont1] == pag[cac + 1])
{
cont4 = cont4 + cont2;
}
if (cont4 >= pag.Length || resultado <= 0)
{
break;
}
else if (pag[cont2] == ' ')
{
maiuscula = maiuscula + proced(cont1, pag);
}
cont1++;
cont2++;
pa++;
}
Console.WriteLine("Nome: {0}", maiuscula);
Console.WriteLine(resultado);
Console.ReadLine();
}
}
}

antes demais muito obrigado por ajudarem :005:
 
Última edição pelo moderador:
Lá vai um exemplo em java:

Código:
public class YellowPages {
    
    private String convertToTitleCase(String toConvert) {
        assert toConvert != null : "cannot convert the null string to title case";
        
        if(toConvert.length() == 0)
            return toConvert;
        StringBuilder result = new StringBuilder(toConvert.toLowerCase());
        result.setCharAt(0, Character.toUpperCase(result.charAt(0)));
        return result.toString();
    }
    
    public String normalizeName(String name) {
        String[] nameSplitted = name.split("\\s+");
        
        if(nameSplitted.length <  2) {
            throw new IllegalArgumentException("name " + name + " doesn't contain enough names");
        }
        
        for (int i = 0; i < nameSplitted.length; i++)
            nameSplitted[i] = convertToTitleCase(nameSplitted[i]);

        StringBuilder normalizedForm = new StringBuilder();
        normalizedForm.append(nameSplitted[nameSplitted.length - 1]);
        normalizedForm.append(", ");
        normalizedForm.append(nameSplitted[0]);

        if(nameSplitted.length > 2)
            normalizedForm.append(",");
        
        for(int i = 1; i < nameSplitted.length - 1;  i++) {
            normalizedForm.append(" ");
            normalizedForm.append(nameSplitted[i].charAt(0));
            normalizedForm.append(".");
        }
        
        return normalizedForm.toString();
    }

}
 
Última edição:
bom o programa e em c# tentei aplicar isto pa c# fazendo as alteraçoes da linguagem mas ele nao me reconheçe alguns metodos pk????
sedo que c# e uma evoluçao de java e c++, agora é que me baralhei todo:(
 
Back
Topo