使用Visual Basic删除单词的第一个字母

Delete first letter of the words using visual basic

我有一个代码,可以把单词的最后一个字母变成点。我需要如何,如何更改代码,所以当我写一些单词时,在输出中我会得到没有首字母的单词?

例如:

这是我的代码:

Sub New5
dim s, ns as String
dim r as String
s = inputbox("Input text")
r = "Inputed text:" & chr(9) & s & chr(13)
for i = 2 to len(s)
if mid(s,i,1)=" " then ns = ns + "." else ns = ns + mid(s,i-1,1)
next i
ns = ns + "."
r = r & "Result of work:" & chr(9) & ns
MsgBox r
End Sub

抱歉,刚刚看到它被标记为 vb6。这是一个 vb.net 答案。

要想去除每个单词的首字母,首先要做的就是获取单词。 String.Split 将 return 一个基于您提供的拆分字符的数组。在这种情况下,该字符是 space。字符串后面的小 c 告诉编译器这是 Char.

现在我们可以遍历每个单词并切掉第一个字母。我将缩短的单词存储在 List(Of String) 中。您可以通过使用 Substring 传递起始索引来摆脱第一个字母。我们想从第二个字母开始,所以我们传递 1。索引从第一个字母 0 开始。

最后,使用 String.Join 将所有内容重新组合在一起。

ChrLenMidMsgBox 都是 VB6 的遗留物。它们用于向后兼容,但学习 .net 类 功能是个好主意。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    New5()
End Sub

Private Sub New5()
    Dim input = InputBox("Input text")
    Dim words = input.Split(" "c)
    Dim ShortWords As New List(Of String)
    For Each word In words
        ShortWords.Add(word.Substring(1))
    Next
    Dim shortenedString = String.Join(" ", ShortWords)
    MessageBox.Show(shortenedString)
End Sub

对于 VB6:

Private Sub Convert()
  Dim strIn as string
  Dim strA() As String
  Dim strOut As String
  Dim iX As Integer
  
  strIn - "Hello, how are you?"
  strA = Split(strIn, " ")
  
  For iX = 0 To UBound(strA)
    strA(iX) = Mid$(strA(iX), 2)
  Next
  
  strOut = Join(strA, " ")
End Sub

顺便说一句,您的 libreoffice 标签也不合适,因为 LibreOffice 不使用与 vb6 或 vba.

相同的语言