none
generar letras al azar con una palabra dada RRS feed

  • Pregunta

  • el problemas es que con un textos dado la palabra con esa misma tienes que generar dos letras random y que se puedan guardar es para hacer como un tipo RFC, ya lo intente con un random pero no me deja por que no es int, despues con un for pero esto me genera una por una pero yo quiero dos random, alguna sugerencia por favor buen dia
    miércoles, 9 de octubre de 2019 21:51

Respuestas

  • Hola

    podrías intentar usando la longitud de la cadena y el numero resultante seria la posición de la letra

    public static string DosLetras(string cad)
    {
      string dosLetras = "";
      Random rnd = new Random();
      for (int i = 0; i < 2; i++)
      {
        int Uno = rnd.Next(0, cad.Length);
        dosLetras += cad[Uno];
      }
      return dosLetras;
    }

    • Marcado como respuesta shupager99 jueves, 10 de octubre de 2019 17:21
    jueves, 10 de octubre de 2019 3:28
  • HOLA Shup!! :D :D

    para responderte hice dos metodos uno que genera el string random y la que te toma la inicial del string que devuelve el random, solo toma palabras que estén separadas por espacio así que si quieres cambiar el espacio, por otro carácter lo tienes que ingresar en nombreStr.

        class Program
        {
            private static Random rndWord = new Random();
            static void Main(string[] args)
            {
                string nombreStr = "JUAN FERNANDO PEREZ ESCOBAR";
               MakeRfc(RandomString(2, nombreStr));
    
    
                Console.ReadKey();
            }
    
            public static string RandomString(int length, string caraters)
            {
                
                return new string(Enumerable.Repeat(caraters, length)
                  .Select(s => s[rndWord.Next(s.Length)]).ToArray());
            }
    
            public static void MakeRfc(string InitialString)
            {
                string[] InicioDivision = InitialString.Split(' ');
    
                if (InicioDivision.Length > 1)
                    for (int i = 0; i < InicioDivision.Length; i++)
                    {
                        if (InicioDivision[i] != "")
                        {
                            Console.WriteLine(InicioDivision[i].Substring(0, 1));
                        }
                    }
    
            }
        }

    suerte!

    si te sirvio no olvides cerrar el hilo con marcar como respuesta, asi como en el otro hilo que resolviste.


    • Editado greg_dorian jueves, 10 de octubre de 2019 14:27
    • Marcado como respuesta shupager99 jueves, 10 de octubre de 2019 17:21
    jueves, 10 de octubre de 2019 14:26

Todas las respuestas

  • Hola shupager99

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma,  te comento que para  que la comunidad de foros te pueda asesorar mejor, es necesario que nos compartas el form/code que estás desarrollando

     

     

    Gracias por usar los foros de MSDN.

     

    Pablo Rubio

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 9 de octubre de 2019 22:40
    Moderador
  • Hola shupager99:

    Puedes utilizar algo como esto.

    Random r = new Random(DateTime.Now.Millisecond);
    int num1 = r.Next(65, 91);
    int num2 = r.Next(65, 91);
    char a = (char)num1;
    char b = (char)num2;
    Generas los aleatorios, entre para el código ascii de los carácteres, y luego le haces un cast.

    jueves, 10 de octubre de 2019 1:57
  • Hola

    podrías intentar usando la longitud de la cadena y el numero resultante seria la posición de la letra

    public static string DosLetras(string cad)
    {
      string dosLetras = "";
      Random rnd = new Random();
      for (int i = 0; i < 2; i++)
      {
        int Uno = rnd.Next(0, cad.Length);
        dosLetras += cad[Uno];
      }
      return dosLetras;
    }

    • Marcado como respuesta shupager99 jueves, 10 de octubre de 2019 17:21
    jueves, 10 de octubre de 2019 3:28
  • HOLA Shup!! :D :D

    para responderte hice dos metodos uno que genera el string random y la que te toma la inicial del string que devuelve el random, solo toma palabras que estén separadas por espacio así que si quieres cambiar el espacio, por otro carácter lo tienes que ingresar en nombreStr.

        class Program
        {
            private static Random rndWord = new Random();
            static void Main(string[] args)
            {
                string nombreStr = "JUAN FERNANDO PEREZ ESCOBAR";
               MakeRfc(RandomString(2, nombreStr));
    
    
                Console.ReadKey();
            }
    
            public static string RandomString(int length, string caraters)
            {
                
                return new string(Enumerable.Repeat(caraters, length)
                  .Select(s => s[rndWord.Next(s.Length)]).ToArray());
            }
    
            public static void MakeRfc(string InitialString)
            {
                string[] InicioDivision = InitialString.Split(' ');
    
                if (InicioDivision.Length > 1)
                    for (int i = 0; i < InicioDivision.Length; i++)
                    {
                        if (InicioDivision[i] != "")
                        {
                            Console.WriteLine(InicioDivision[i].Substring(0, 1));
                        }
                    }
    
            }
        }

    suerte!

    si te sirvio no olvides cerrar el hilo con marcar como respuesta, asi como en el otro hilo que resolviste.


    • Editado greg_dorian jueves, 10 de octubre de 2019 14:27
    • Marcado como respuesta shupager99 jueves, 10 de octubre de 2019 17:21
    jueves, 10 de octubre de 2019 14:26
  • gracias hermano por la ayuda
    jueves, 10 de octubre de 2019 17:22
  • increible muchas gracias bro me sirvio mucho buen dia
    jueves, 10 de octubre de 2019 17:22
  • hermano wow las dos las use y me funcionaron a la perfección, gracias por tomarte tu tiempo en verdad.

    PD: hermano soy nuevo en esto quisiera que me dieras tu opinion. 
    otro ejercicio me pidieron que ahora usara de un nombre las consonantes, lo que estoy viendo es quitar las vocales y de ahi pongo las consonantes, u otra opinion que tu me sugieras por favor.
    buenn dia. 

    jueves, 10 de octubre de 2019 17:25