好的,所以我得到了一个小代码,试图将英语转换为猪拉丁语,我的元音工作但辅音更难,基于我所拥有的我只能删除第一个辅音, 所以"什么"被翻译成" hatway"而不是" atwhway"请帮助,我还是VB的新手,这就是我所拥有的
Public Const Vowels As String = "aeiou"
Public Const Consonant As String = "bcdfghjklmnpqrstvwxyz"
Private Const ConsonantSuffix As String = "ay"
For consonantIndex As Integer = 0 To Consonant.Length - 1 Step 1
If word.ToLower.StartsWith(Consonant(consonantIndex).ToString) Then
word = word.Remove(0, 1)
word = word & Consonant(consonantIndex) & ConsonantSuffix
End If
Next
答案 0 :(得分:1)
我建议采用不同的策略。找到索引的第一个元音,然后重新排列该索引周围的字母。
Dim index = word.IndexOfAny(Vowels.ToArray)
If (index > 0) then
word = word.Substring(index) & word.Remove(index)
End If
word &= ConsonantSuffix
通过静态存储元音数组而不是每次都调用ToArray
,可以提高效率。
示例(摘自主题Wikipedia article):
happy
'→'appyhay
'duck
'→'uckday
'glove
'→'oveglay
'egg
'→'eggay
'inbox
'→'inboxay
'eight
'→'eightay
'