How to decrypt string from a string containing digits (0-9) and # by using numbers mapping in VB.NET

1 Answer

0 votes
' numbers mapping:
'
' a = 1
' b = 2
' ...
' j = 10#
' ...
' z = 26#

Imports System
Imports System.Text

Public Class Program
    Public Shared Function ConvertToLowercaseCharachter(ByVal str As String) As Char
        Dim num As Integer = Integer.Parse(str)
		
        Return Convert.ToChar(num + 96)
    End Function

	Public Shared Function DecryptString(ByVal str As String) As String
        Dim sb As StringBuilder = New StringBuilder()
        Dim i As Integer = 0

        While i < str.Length - 2
            Dim ch As Char

            If str(i + 2) = "#"c Then
                ch = ConvertToLowercaseCharachter(str.Substring(i, 2))
                i += 2
            Else
                ch = ConvertToLowercaseCharachter(str.Substring(i, 1))
            End If

            i += 1
            sb.Append(ch)
        End While

        While i < str.Length
            Dim ch As Char = ConvertToLowercaseCharachter(str.Substring(i, 1))
			
            sb.Append(ch)
            i += 1
        End While

        Return sb.ToString()
    End Function

    Public Shared Sub Main(ByVal args As String())
        Console.Write(DecryptString("12310#11#26#"))
    End Sub
End Class



' run:
'
' abcjkz
'

 



answered Feb 13, 2024 by avibootz
...