使用C#或VB.Net替换字符串中带数字的元音

时间:2017-05-01 08:09:55

标签: c# vb.net

我尝试编写接受用户输入的应用程序,然后分别用a e i o u替换文本中的元音1 2 3 4 5。 例如:

输入文字:预订

输出: B44k

oo已替换为数字。

任何帮助??? 最好是:C#或VB.NET

1 个答案:

答案 0 :(得分:-1)

好吧,我无法想到向你解释这个问题的另一个尝试,而不是向你展示解决方案:

inputString.Replace("a","1").Replace("e","2").Replace("i","3").Replace("o","4").Replace("u","5");

你也可以把它解决得更漂亮一点:

var vowels = new List<char> {'a', 'e', 'i', 'o', 'u'};
string.Join("", inputString.Select(c =>
{
    var i = vowels.IndexOf(c);
    return i == -1 ? c.ToString() : (i + 1).ToString();
}));

第一个只是替换每个元音,第二个元素获取元音中当前字符的索引(如果它不存在于元音中则为-1),如果它存在则添加1对它(我不知道为什么你没有开始用0计数),否则就是正常的角色。

您可以详细了解替换here

或者你也可以使用这样的字典:

private static string ReplaceVowels (this string toReplace)
{
    var vowels = new Dictionary<char, char> {{'a', '1'}, {'e', '2'}, {'i', '3'}, {'o', '4'}, {'u', '5'}};
    return string.Join("", toReplace.Select (c => vowels.ContainsKey (c) ? vowels [c] : c));
}