none
convertir numeros a letras RRS feed

  • Pregunta

  • hola buenas tardes, una pregunta.. 
    por ejm

    J 1
    F 2
    S 3
    C 4
    I 5
    M 6
    P 7
    O 8
    R 9
    T 0

    cada uno de las letras vale un numero, yo lo que estoy haciendo es hacer que un textbox pongo 12 y un boton me debe de salir las respuestas en un textbox debe de salir las letras "JF", por ejm y si pongo un 90 las letras me debe de salir "RT"

    AYUDAAA..!!

    domingo, 26 de marzo de 2017 21:41

Respuestas

  • Hola Erick98,

    Hay varias formas de realizar lo que planteas, una forma sería crear un arreglo de tipo 'String' o 'Char' y los valores numéricos serían las posiciones de cada letra.

    Algo como :

    - Ya que el String es un arreglo de 'Char' puedes iterar y convertir el valor a un entero el cual será la posición de la letra en el arreglo.

    'Arreglo que almacenará las letras { T = 0, J = 1, F = 2, etc ...}
    Dim letras As Char() = {"T"c, "J"c, "F"c, "S"c, "C"c, "I"c, "M"c, "P"c, "O"c, "R"c}
    
    Dim result = New String(TextBox1.Text.
                    Select(Function(x) letras(CInt(Char.GetNumericValue(x)))).ToArray())
    
    MessageBox.Show(result)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    domingo, 26 de marzo de 2017 22:06
  • Hola,

    por qué no generas un Diccionario? Un diccionario de string, int. Así simplemente buscarías una clave y recuperarías el valor

    Dim dictionary As New Dictionary(Of String, Integer)() From { _
    	{"J", 1}, _
    	{"F", 2}, _
    	{"S", 3}, _
    	{"C", 4}, _
    	{"I", 5}, _
    	{"M", 6}, _
    	{"P", 7}, _
    	{"O", 8}, _
    	{"R", 9}, _
    	{"T", 0} _
    }
    
    ' para recuperar un valor deberías hacer por ejemplo
    Dim key As String = "C"
    Dim result As Integer = dictionary(key)
    ' te debería de devolver un 4


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 27 de marzo de 2017 7:44
  • Te ofrezco otra solucion mas, aprovechando que las cadenas se pueden indexar:

    Function ObtenerLetraDesdeNumero(n as Integer)
        Return "JFSCIMPORT"(n-1)
    End Function

    lunes, 27 de marzo de 2017 8:06

Todas las respuestas

  • Hola Erick98,

    Hay varias formas de realizar lo que planteas, una forma sería crear un arreglo de tipo 'String' o 'Char' y los valores numéricos serían las posiciones de cada letra.

    Algo como :

    - Ya que el String es un arreglo de 'Char' puedes iterar y convertir el valor a un entero el cual será la posición de la letra en el arreglo.

    'Arreglo que almacenará las letras { T = 0, J = 1, F = 2, etc ...}
    Dim letras As Char() = {"T"c, "J"c, "F"c, "S"c, "C"c, "I"c, "M"c, "P"c, "O"c, "R"c}
    
    Dim result = New String(TextBox1.Text.
                    Select(Function(x) letras(CInt(Char.GetNumericValue(x)))).ToArray())
    
    MessageBox.Show(result)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    domingo, 26 de marzo de 2017 22:06
  • Hola,

    por qué no generas un Diccionario? Un diccionario de string, int. Así simplemente buscarías una clave y recuperarías el valor

    Dim dictionary As New Dictionary(Of String, Integer)() From { _
    	{"J", 1}, _
    	{"F", 2}, _
    	{"S", 3}, _
    	{"C", 4}, _
    	{"I", 5}, _
    	{"M", 6}, _
    	{"P", 7}, _
    	{"O", 8}, _
    	{"R", 9}, _
    	{"T", 0} _
    }
    
    ' para recuperar un valor deberías hacer por ejemplo
    Dim key As String = "C"
    Dim result As Integer = dictionary(key)
    ' te debería de devolver un 4


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    lunes, 27 de marzo de 2017 7:44
  • Te ofrezco otra solucion mas, aprovechando que las cadenas se pueden indexar:

    Function ObtenerLetraDesdeNumero(n as Integer)
        Return "JFSCIMPORT"(n-1)
    End Function

    lunes, 27 de marzo de 2017 8:06