首页 > 解决方案 > Ubbi Dubbi 如何在每个元音前加ub?

问题描述

Console.Write("Enter word: ");
string word = Console.ReadLine();
var loc = word.IndexOfAny(new char[] { 'a', 'e', 'i', 'o', 'u' });

string word1 = loc >= 0 ? word.Insert(loc, "ub") : word;
Console.WriteLine(word1);

我得到hubello,但我想要hubellubo

标签: c#string

解决方案


您只需对字符串进行一次修改 - 无论您首先检测到哪个元音。IndexOfAny仅返回找到的第一个匹配项。

相反,您需要找到输入字符串中的所有元音。您可以使用循环执行此操作,但使用正则表达式替换可能更容易执行此操作。

var input = "hello";
var pattern = "([aeiou])";
var replaced = Regex.Replace(input, pattern, "ub$1");
Console.WriteLine(replaced);

需要捕获组将找到的元音重新替换回替换中。


推荐阅读