Jump to content
deaps

como modificar uma string? [RESOLVIDO]

Recommended Posts

deaps

Boas pessoal! eu estou com dificuldade num exercício com strings onde tenho um nome (tipo string), e tenho que modificar a string para que o nome fique reduzido (isto é, o primeiro, segundo e ultimo nome ficam igual, enquanto os outros ficam só com a inicial: exemplo: João António Freitas Andrade --> João António F. Andrade).

Eu estava a  ver o StringBuilder e string.format, mas não estou a conseguir compreender direito.

agradeço se alguém poder ajudar. Enquanto isso, vou continuar a fazer experiências a ver se acerto  :cheesygrin:

Share this post


Link to post
Share on other sites
RJ90

Faria assim.

Criava um array, cada posição do array seria "um nome".

Array[0] = João

Array[1] = António

Array[2] = Freitas

Array[3] = Andrade

Depois ao escrever o Array, dizias que o conteúdo da posição 2 seria apenas a 1ª letra.

Ver String.Split Method e String.Substring Method.


Resolução:

string nome = Console.ReadLine();
string nomeFinal = string.Empty;

string[] NomesSplit = nome.Split(' ');

if (NomesSplit.Length == 4)
{
nomeFinal = NomesSplit[0] + " " + NomesSplit[1] + " " + NomesSplit[2].Substring(0, 1) + "." + " " + NomesSplit[3];
Console.WriteLine(nomeFinal);
Console.ReadKey();
}
else
{
Console.WriteLine("Erro! O nome inserido não cumpre os requisitos.");
        Console.ReadKey();            
}

Agora pergunta-se, é a melhor forma? Se o nome completo tiver 4 nomes, serve.

Cumprimentos,


Samsung 700Z5A-S01PT Samsung Ominia W

ᥡ What Else? ᥡ

Share this post


Link to post
Share on other sites
deaps

também tem strings com mais de 4 nomes, mas por este exemplo já vai-me ajudar a fazer esse exercício.

De qualquer forma, obrigado  :thumbsup:

Share this post


Link to post
Share on other sites
deaps

Consegui!  :cheesygrin:

não sei se é a melhor forma mas foi assim que consegui:

namespace experimento_stringsplit
{
class Program
{
	public static void Main(string[] args)
	{
		string nome="";
		string nomeReduzido="";
		int i=0;
		Console.WriteLine("Escreva o seu nome: ");
		nome=Console.ReadLine(); // (EX: "João António Freitas Andrade")

		string[] nomeS= nome.Split(' ');

		for (i=0;i<nomeS.Length;i++)  // transforma os nomes em nomes reduzidos
		{

			if (nomeS[i]!=nomeS[0] && nomeS[i]!=nomeS[1] && nomeS[i]!=nomeS[nomeS.Length-1]) 
				nomeS[i] = nomeS[i].Substring(0,1)+". ";
			else
				nomeS[i] = nomeS[i]+" ";
		}

		for (i=0;i<nomeS.Length;i++) // junta as strings
		{
			nomeReduzido += nomeS[i];
		}
		Console.WriteLine(nomeReduzido); // (SAÍDA: João António F. Andrade) 

		Console.Write("\n\nPress any key to continue . . . ");
		Console.ReadKey(true);
	}
}
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.