Zahl zu Buchstabe

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von diylab.

    Zahl zu Buchstabe

    Hallo, ich habe schon gegoogelt aber leider nichts gefunden. Ich würde gerne ein Zahl zu einem Buchstaben Umwandeln. Nach dem Beispiel:

    Quellcode

    1. 1 A
    2. 2 B
    3. 3 C
    4. 4 D
    5. 5 E
    6. 6 F
    7. 7 G
    8. 8 H
    9. 9 I
    10. 10 J
    11. 11 K
    12. 12 L
    13. 13 M
    14. 14 N
    15. 15 O
    16. 16 P
    17. 17 Q
    18. 18 R
    19. 19 S
    20. 20 T
    21. 21 U
    22. 22 V
    23. 23 W
    24. 24 X
    25. 25 Y
    26. 26 Z
    27. 27 AA
    28. 28 AB
    29. 29 AC
    30. 30 AD
    31. 31 AE
    32. 32 AF
    33. 33 AG
    34. 34 AH
    35. 35 AI
    36. 36 AJ
    37. 37 AK
    38. 38 AL
    39. 39 AM
    40. 40 AN
    41. 41 AO


    Ich danke für jeden Ansatz.
    Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

    @Keybladmaster: Wat? Was bringt ihm das? Er will nicht die entsprechenden Zahlen haben, sondern das so wie oben.
    @Andy16823: Leg dir ein Dictionary(Of Integer, String) an und arbeite damit.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ja, aber das ist nicht das Ziel des TEs, denn er will nicht für die entsprechenden ASCII-Codes die Buchstaben, sondern selbst eine Art Wörterbuch anlegen, für 1 ist das A, für 2 das B usw.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Keybladmaster schrieb:

    Man kann aber den ASCII Code zum Char/String umwandeln.
    Oder etwa nicht?
    Und weit wann entspricht die Zahl 41 im ASCII Code zwei Zeichen nämlich "AO"?


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Bitte schön, geht bis ins Unendliche (bzw. halt int/long.MaxValue):

    VB.NET-Quellcode

    1. Public Function GetLetterCountString(count As Integer) As String
    2. Dim alphabet As Char() = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray()
    3. Dim sb = New StringBuilder()
    4. Dim a As Integer = count
    5. While a >= alphabet.Length
    6. Dim b As Integer
    7. a = Math.DivRem(a, alphabet.Length, b) - 1
    8. sb.Insert(0, alphabet(b))
    9. End While
    10. sb.Insert(0, alphabet(a))
    11. Return sb.ToString()
    12. End Function

    Originalcode

    C-Quellcode

    1. public string GetLetterCountString(int count)
    2. {
    3. char[] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
    4. var sb = new StringBuilder();
    5. int a = count;
    6. while (a >= alphabet.Length)
    7. {
    8. int b;
    9. a = Math.DivRem(a, alphabet.Length, out b) - 1;
    10. sb.Insert(0, alphabet[b]);
    11. }
    12. sb.Insert(0, alphabet[a]);
    13. return sb.ToString();
    14. }

    Man könnte gegebenenfalls das Array auch weglassen, den Unicode-Offset des Standard-Alphabets draufrechnen und dann einfach in Char umrechnen, ich kenn aber den Offset nicht und hatte keine Lust nachzusehen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Artentus“ ()

    Danke an euch alle, hier auch noch eine Lösung

    VB.NET-Quellcode

    1. Public zuordnung As Dictionary(Of Integer, String)
    2. Public reference As Dictionary(Of Integer, String)
    3. Public Sub initial()
    4. create_dicit()
    5. End Sub
    6. Public Sub create_dicit()
    7. ' <----------------------- Listen Initialisieren ------------------------------->
    8. zuordnung = New Dictionary(Of Integer, String)
    9. reference = New Dictionary(Of Integer, String)
    10. ' <----------------------- Anlegen der Zähler Werte ---------------------------->
    11. Dim z As Integer = 1
    12. Dim n As Integer = 0
    13. ' <----------------------- Bilden Des Alphapetes ------------------------------->
    14. zuordnung.Add(0, "")
    15. zuordnung.Add(1, "A")
    16. zuordnung.Add(2, "B")
    17. zuordnung.Add(3, "C")
    18. zuordnung.Add(4, "D")
    19. zuordnung.Add(5, "E")
    20. zuordnung.Add(6, "F")
    21. zuordnung.Add(7, "G")
    22. zuordnung.Add(8, "H")
    23. zuordnung.Add(9, "I")
    24. zuordnung.Add(10, "J")
    25. zuordnung.Add(11, "K")
    26. zuordnung.Add(12, "L")
    27. zuordnung.Add(13, "M")
    28. zuordnung.Add(14, "N")
    29. zuordnung.Add(15, "O")
    30. zuordnung.Add(16, "P")
    31. zuordnung.Add(17, "Q")
    32. zuordnung.Add(18, "R")
    33. zuordnung.Add(19, "S")
    34. zuordnung.Add(20, "T")
    35. zuordnung.Add(21, "U")
    36. zuordnung.Add(22, "V")
    37. zuordnung.Add(23, "W")
    38. zuordnung.Add(24, "X")
    39. zuordnung.Add(25, "Y")
    40. zuordnung.Add(26, "Z")
    41. ' <----------------------- Nun Die Zuordnungen der Zahlen ------------------------------->
    42. For i = 0 To 675
    43. reference.Add(i, zuordnung.Item(n) & zuordnung.Item(z))
    44. z += 1
    45. If z > 26 Then
    46. z = 1
    47. n += 1
    48. End If
    49. Next
    50. End Sub
    Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

    Um aus einer 1 ein A zu machen, kann man auch folgendes Verwenden:

    VB.NET-Quellcode

    1. Dim i As Integer = 2 ' B
    2. Dim c As Char = Convert.ToChar(i + 64)

    Oder in C#

    C-Quellcode

    1. int i = 2;
    2. char c = (char)(i + 64);

    Man braucht da also kein Dictionary. Man muss nur aufpassen, dass man keine zu großen Werte (>26 bzw. >90) verwendet, sonst bekommt man Zeichen, die man nicht will.
    Von meinem iPhone gesendet