Как конвертировать 23456 в строку, и она должна отображаться как «два три четыре пять шесть»? - PullRequest
0 голосов
/ 11 января 2019

Мне нужна помощь для преобразования любого данного числа, скажем, «0123456789», присутствующего в TextBox, для преобразования в строку типа «Ноль один два три четыре пять шесть семь семь восемь» и печати в VB.Net.

Ответы [ 4 ]

0 голосов
/ 11 января 2019

$ 0,02

Private Function NumberDigitsToText(Num As Integer) As String
    Dim rv As String = ""
    Dim words() As String = {"Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine "}

    rv = String.Join("", (From c In Num.ToString
                          Select words(Integer.Parse(c))))
    Return rv
End Function
0 голосов
/ 11 января 2019

Как предположил Джими, вы можете сделать что-то вроде этого

Dim wordsarray As String() = {"Zero", "One", "Two", " Three" , "Four", "Five", "Six", "Seven", "Eight", "Nine"}
Dim result As String = ""
For each c As Char In TextBox1.Text
  result &= wordsarray(Integer.Parse(c)) & " "
Next
'The string is now stored in the result variable and you can do something like this
Msgbox(result)

При этом вы должны убедиться, что значение в текстовом поле только целые числа

0 голосов
/ 11 января 2019

мое решение

Function NumberToText1(ByVal n As Integer) As String ' numeri da 0 a 9
    Dim arr() As String = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven",
"Eight", "Nine"}
    Return arr(n) & " "
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim w As String = ""
    For Each s As String In TextBox1.Text
        w += NumberToText1(CInt(s))
    Next
    MessageBox.Show(w)
End Sub
0 голосов
/ 11 января 2019

Почему бы не сделать функцию, которая читает до конца и для каждого целого числа, выполнить преобразование с таблицей как 1 -> Один; 2 -> Двое и так далее?

как

Dim something as somewhat control that can carry text
Dim converted as other somewhat control that also can carry text

for each char in something.text
if char = ("1") then
converted.text = converted.text & ("one")
elseif char = ("2")
converted.text = converted.text & ("two")
elseif
...

извините за мой плохой английский, надеюсь, вы видите мою идею с какой-то быстрой, грязной и грязной идеей из ниоткуда из моего ах 1006 *

...