这是如何将十进制转换为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 ???
答案 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
现在,您可以使用数组元素执行任何数学运算。