将Decimal转换为Ascii?

时间:2016-03-24 23:54:12

标签: vb.net visual-studio-2015

这是如何将十进制转换为Ascii,但我有不同格式的十进制,我想要将其转换为ascii。

Public Shared Function DecimalToASCII(dec As String) As String
    Dim ascii As String = String.Empty

    For i As Integer = 0 To dec.Length - 1 Step 3
        ascii += CChar(ChrW(Convert.ToByte(dec.Substring(i, 3))))
    Next

    Return ascii
End Function

EX:

这是十进制的,我想在textbox1.text中输入它: “912,697,583,1065,261” 我想对逗号之间的每组数字进行操作,然后将其转换为Ascii ???

1 个答案:

答案 0 :(得分:1)

要将字符串拆分为组,您只需使用Split命令即可​​。你的代码是一种冗长的方式 - 虽然它会在尝试处理四位数字时失败。

创建一个字符串数组,没有预定义数量的元素 -

Dim myArray()

使用此代码填充

myArray = Split(dec,",")

现在,使用您的输入示例,您的ascii 字符串数组包含此数据

myArray(0)=" 912"

myArray(1)=" 697"

myArray(2)=" 583"

myArray(3)=" 1065"

myArray(4)=" 261"

如果您想拥有可在算术运算中使用的数字,请改用此代码。该函数假定您正在使用整数,但如果您想使用其他类型,只需将Integer的所有匹配项更改为您要处理的类型,并将CInt函数更改为CDbl或cSng。

Public Shared Function DecimalToASCII(dec As String) As Integer()
    'create an array of strings
    Dim ascii() As String

    'split each group into the array
    ascii = Split(dec, ",")

    'declare numbers array that is the same size as the ascii array
    Dim numbers(ascii.GetUpperBound(0)) As Integer

    'convert the array of strings to an array of numbers
    For i As Integer = 0 To ascii.GetUpperBound(0) - 1
        numbers(i) = CInt(ascii(i))
    Next

    'return an array of numbers containing each group
    Return numbers
End Function

像这样使用

Dim dec As String = "912,697,583,1065,261"
Dim MyNumbersArray() As Integer = DecimalToASCII(dec)

使用此代码,您将拥有一个整数的数组,就像这样

MyNumbersArray(0)= 912

MyNumbersArray(1)= 697

MyNumbersArray(2)= 583

MyNumbersArray(3)= 1065

MyNumbersArray(4)= 261

现在,您可以使用数组元素执行任何数学运算。