Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Gostaria de Dividir um string em 3 partes iguais

estou realizando um exercício ao qual me foi repassado, nele consiste em executar um programa para receber uma quantidade de no mínimo 10 caracteres e gerar uma senha onde o resultado deve seguir o seguinte processo:

dividir os caracteres gerais em três partes iguais

onde será escolhida a última letra de cada parte, e concatenado alternando com a quantidade de cada parte.

Ex: 10 caracteres= ABC (última letra C, qtd caracteres 3) DEF (última letra F, qtd caracteres 3) GHIJ (última letra J, qtd caracteres 4) senha gerada= C3F3J4

O problema é que de acordo com o código que eu tenho gerado, ao dividir a string em três partes (sendo uma variável inteira) basicamente o programa entrega: ABC DEF GHIJ

mas quando é adicionado mais um caractere ao modelo, a divisão em partes "iguais" não acontece entregando: ABC DEF GHIJL

-Resumindo, gostaria de gerar um código onde o programa me entregaria da seguinte forma: ABC DEFG HIJL

-Acredito que o erro deve ocorrer pelo fato da variável Nome_3 ser inteira, o que desprezaria o resto da divisão, porém, os substrings utilizados não recebem double e eu não sei como jogar este resto ou estes restos nas demais partes da divisão.

segue o código que venho tentando:

Console.Write("Digite um nome com no mínimo 10 caracteres: "); string Nome = Console.ReadLine();

        int Tamanho_Nome = Nome.Length;
        int Nome_3 = Tamanho_Nome / 3;

        string Parte_A = Nome.Substring (0, Nome_3);
        string Parte_B = Nome.Substring (Nome_3, Nome_3);
        string Parte_C = Nome.Substring ((Tamanho_Nome-Nome_3));

       int Tamanho_A = Parte_A.Length;
        int Tamanho_B = Parte_B.Length;
        int Tamanho_C = Parte_C.Length;

        string ConcF_1 = Parte_A.Substring(Tamanho_A - 1);
        string ConcF_2 = Parte_B.Substring(Tamanho_B - 1);
        string ConcF_3 = Parte_C.Substring(Tamanho_C - 1);

        Console.WriteLine("A Terceira senha é: " + ConcF_1+Tamanho_A+ConcF_2+Tamanho_B+ConcF_3+Tamanho_C);

        Console.ReadLine();
1 resposta
solução!

Assim que você queria?

Console.Write("Digite um nome com no mínimo 10 caracteres: ");
        string Nome = Console.ReadLine();

        int Tamanho_Nome = Nome.Length;
        int Nome_3 = Tamanho_Nome / 3;
        int Nome_4 = (Tamanho_Nome - Nome_3) / 2;

        string Parte_A = Nome.Substring(0, Nome_3);
        string Parte_B = Nome.Substring(Nome_3, Nome_4);
        string Parte_C = Nome.Substring(Nome_3 + Nome_4);

        int Tamanho_A = Parte_A.Length;
        int Tamanho_B = Parte_B.Length;
        int Tamanho_C = Parte_C.Length;

        string ConcF_1 = Parte_A.Substring(Tamanho_A - 1);
        string ConcF_2 = Parte_B.Substring(Tamanho_B - 1);
        string ConcF_3 = Parte_C.Substring(Tamanho_C - 1);

        Console.WriteLine("A Terceira senha é: " + ConcF_1 + Tamanho_A + ConcF_2 + Tamanho_B + ConcF_3 + Tamanho_C);

        Console.ReadLine();