像迈克和威尔说,有很多可能性,这个代码仅仅是某些情况下,它使用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 –
到目前为止您尝试过了什么?你的具体问题是什么?我们可以看到一些代码吗? –