我需要编写代码来检查输入到文本框中的最后一个单词的第一个字母。如何在vb.net中做到这一点?
您可以简单地使用linq:
Imports System.Linq
...
Dim text as String = textbox1.Text
If (String.IsNullOrWhiteSpace(text)) Then 'text can't be null or empty
Return
End If
Dim firstLetterOfLastWord As String = text.Split(" ").LastOrDefault().FirstOrDefault()
@fsbflavio提供了简洁的解决方案,但它太简洁了,你的老师可能会知道你自己没有做到。
一个更笨拙的、循序渐进的解决方案是:
Dim text As String = textbox1.Text
If (String.IsNullOrWhiteSpace(text)) Then 'text can't be null or empty
Return ""
Else
Dim words As String() = text.Split(" ")
Dim NumberOfWords As Integer = words.Length
Dim LastWord = words(NumberOfWords - 1) 'Remember arrays start at index 0
Dim FirstLetter As String = LastWord.Substring(0, 1)
Return FirstLetter
End If
虽然不那么优雅,但它确实展示了你的工作方式。看到它一步一步地被打破,也许下次你应该先试试自己;只有当你遇到特定问题时才问这里。
一般来说,@fsbflavio的代码是正确的,但它可以在一行中简化:
Dim firstLetterOfLastWord As String = TextBox1.Text.Split(" ").Last().FirstOrDefault()
如果文本框为空(可以是空字符串(,它将返回vbNullChar
。否则,它将返回最后一个单词的第一个字母。
无需生成字符串数组
使用字符串获取最后一个空白索引。子字符串和字符串。LastIndexOf在一起-将其位置增加1,并获取长度为1:的子字符串
Dim theFirstOfTheLast = someText.Substring(someText.LastIndexOf(" ") + 1, 1)