如何替换或写下句子

时间:2015-08-16 23:10:33

标签: vb.net

我想在vb.net中有一段代码或函数,可以向后写一个句子。

例如:我喜欢visual basic

结果:基本的视觉爱我

这是我到目前为止所做的:

Dim name As String 
Dim namereversed As String 
name = RichTextBox1.Text 
namereversed = "" 
Dim i As Integer 
For i = Len(name) To 1 Step -1 
namereversed = namereversed & Replace(name, i, 1) 
Next 
RichTextBox2.Text = namereversed

代码有效,但它没有给我我想要的价值。它使整个单词反转。

2 个答案:

答案 0 :(得分:0)

    Dim name As String = "i love visual basic"
    Dim reversedName As String = ""
    Dim tempName As String = ""

    For i As Integer = 0 To name.Length - 1
        If Not name.Substring(i, 1).Trim.Equals("") Then
            tempName += name.Substring(i, 1)
        Else
            reversedName = tempName + " " + reversedName
            tempName = ""
        End If
    Next

从索引0开始并从长度中扣除1,因为长度计数从1开始,但索引计数从零开始。如果您放置To name.Length,它将返回IndexOutOfBounds。从0 To Length-1循环它,因为你需要原样而不是向后拼写......反过来的是单词所以添加一个临时的String变量来存储每个单词并在保存的句子/单词之前添加它。

或使用此

Dim strName As String() = name.Split(" ")
Array.Reverse(strName)
reversedName = String.Join(" ", strName)

答案 1 :(得分:0)

这是我的贡献,你可以看到它不难做到,它非常简单。还有很多其他方法更短。

    Console.Title = "Text Reverser"
    Console.ForegroundColor = ConsoleColor.Green

    'Text which will be Reversed
    Dim Text As String
    Console.Write("Write your text: ")
    Text = Console.ReadLine
    Console.Clear()

    Dim RevText As String = "" '← The Text that will be reversed
    Dim Index As Int32 = Text.Length '← Index used to write backwards

    'Fill RevText with a char
    Do Until RevText.Length = Text.Length
        RevText = RevText.Insert(0, "§")
    Loop
    Console.WriteLine(RevText)

    'Replace "Spaces" with Character, using 'Index' to know where go the chars
    For Each Caracter As Char In Text

        Index -= 1 'Rest 1 from the Index
        RevText = RevText.Insert(Index, Caracter) '← Put next char in the reversed text

        '↓ Finished reversing the text
        If Index = 0 Then
            RevText = RevText.Replace("§", "") 'Replace char counter to nothing
            Console.WriteLine("Your text reversed: " & RevText) '← When Index its 0 then write the RevText
        End If

    Next

    'Pause
    Console.ReadKey()

我在控制台中完成了这个项目,但是你知道,你可以在普通的Windows窗体中使用这个代码。 这是 Stackoverflow 中的第一个答案:)