C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Asc: We first use the Asc function to convert several important characters to integers. These could be hard-coded in the program.
Val, AscToCharArray: We invoke ToCharArray and loop over all the chars in the string. We use Asc on each char to convert it to its ASCII representation.
ToCharArrayChar ArrayAnd: The shifting logic then tests letters and changes their values to be 13 greater or 13 less.
Finally: The String constructor converts the character array back to a string and returns it.
String ConstructorVB.NET program that implements ROT13 algorithm
Module Module1
Sub Main()
' Use Rot13.
Console.WriteLine("dotnetCodex.com ZAza")
Console.WriteLine(Rot13("dotnetCodex.com ZAza"))
Console.WriteLine(Rot13(Rot13("dotnetCodex.com ZAza")))
End Sub
Public Function Rot13(ByVal value As String) As String
' Could be stored as integers directly.
Dim lowerA As Integer = Asc("a"c)
Dim lowerZ As Integer = Asc("z"c)
Dim lowerM As Integer = Asc("m"c)
Dim upperA As Integer = Asc("A"c)
Dim upperZ As Integer = Asc("Z"c)
Dim upperM As Integer = Asc("M"c)
' Convert to character array.
Dim array As Char() = value.ToCharArray
' Loop over string.
Dim i As Integer
For i = 0 To array.Length - 1
' Convert to integer.
Dim number As Integer = Asc(array(i))
' Shift letters.
If ((number >= lowerA) AndAlso (number <= lowerZ)) Then
If (number > lowerM) Then
number -= 13
Else
number += 13
End If
ElseIf ((number >= upperA) AndAlso (number <= upperZ)) Then
If (number > upperM) Then
number -= 13
Else
number += 13
End If
End If
' Convert to character.
array(i) = Chr(number)
Next i
' Return string.
Return New String(array)
End Function
End Module
Output
dotnetCodex.com ZAza
qbgargcreyf.pbz MNmn
dotnetCodex.com ZAza