像邁克和威爾說,有很多可能性,這個代碼僅僅是某些情況下,它使用If
語句,然而Case
聲明可能會更好
Protected Sub btnPlural_Click(sender As Object, e As EventArgs) Handles btnPlural.Click
Dim strWord As String
Dim lastLetter As String
Dim secondlast As String
If txtWord.Text <> "" Then
strWord = txtWord.Text
lastLetter = GetChar(strWord, strWord.Length)
secondlast = GetChar(strWord, strWord.Length - 1)
If lastLetter = "r" Or lastLetter = "p" Or lastLetter = "t" Then
strWord = strWord + "s"
lblPlural.Text = strWord
End If
If lastLetter = "e" Then
If secondlast = "f" Then
strWord = strWord.Substring(0, strWord.Length - 2) + "ves"
lblPlural.Text = strWord
Else
strWord = strWord + "s"
lblPlural.Text = strWord
End If
End If
If lastLetter = "x" Then
strWord = strWord + "es"
lblPlural.Text = strWord
End If
If lastLetter = "h" Then
If secondlast = "c" Then
strWord = strWord + "es"
lblPlural.Text = strWord
Else
strWord = strWord + "s"
lblPlural.Text = strWord
End If
End If
If lastLetter = "y" Then
If secondlast = "t" Or secondlast = "d" Or secondlast = "n" Then
strWord = strWord.Substring(0, strWord.Length - 1) + "ies"
lblPlural.Text = strWord
ElseIf secondlast = "e" Or secondlast = "a" Or secondlast = "o" Then
strWord = strWord + "s"
lblPlural.Text = strWord
End If
End If
End If
End Sub
希望這有助於
一字符串是一個字符數組。您可以使用length - 1索引到數組中以獲取最後一個字符。或者使用Linq,您可以使用.Last()擴展方法獲取最後一個字符。許多不同的方式。無論如何,你真的不想這麼做。坐下來用筆和紙以及隨機單詞列表。反過來,使他們成爲複數。你怎麼做呢?在你的行動中尋找模式,並用文字。識別這些模式成爲您的算法。一旦你有你的算法,你可以處理你的代碼。 – Will
有一些字符串操作可以幫助解決這個問題。查看MSDN上列出的字符串類的所有方法https://msdn.microsoft.com/en-us/library/system.string(v=vs.110).aspx –
到目前爲止您嘗試過了什麼?你的具體問題是什麼?我們可以看到一些代碼嗎? –