Lua:
global
ключевое слово, не наоборот. if (type(var) == "string") then stuff() end
боль. PHP:
$function($arg);
, но это не рассчитывает. C/C++:
Если вам нужно использовать это для больших строк, несколько вызовов Replace ()
могут довольно быстро стать неэффективными. Возможно, вам лучше перестроить вашу строку посимвольно:
var map = new Dictionary<char, string>() {
{ 'ä', "ae" },
{ 'ö', "oe" },
{ 'ü', "ue" },
{ 'Ä', "Ae" },
{ 'Ö', "Oe" },
{ 'Ü', "Ue" },
{ 'ß', "ss" }
};
var res = germanText.Aggregate(
new StringBuilder(),
(sb, c) => map.TryGetValue(c, out var r) ? sb.Append(r) : sb.Append(c)
).ToString();
Просто хотите, чтобы немецкие умляуты отображали двухбуквенный (без умлаута) вариант? Ну вот; не тестировалось, но обрабатывает все немецкие умляуты.
String replaceGermanUmlauts( String s ) {
String t = s;
t = t.Replace( "ä", "ae" );
t = t.Replace( "ö", "oe" );
t = t.Replace( "ü", "ue" );
t = t.Replace( "Ä", "Ae" );
t = t.Replace( "Ö", "Oe" );
t = t.Replace( "Ü", "Ue" );
t = t.Replace( "ß", "ss" );
return t;
}
Я не могу придумать какой-либо автоматический способ сделать это, поэтому я считаю, что вам придется делать это вручную.
то есть.
string GermanString = "äö";
GermanString = GermanString.Replace("ä", "ae");
GermanString = GermanString.Replace("ö", "oe");
Сколько там символов? Все гласные в верхнем и нижнем регистре, итак, 10? Не должно быть слишком много работы.
Как насчет использования строки. Замените:
string germanText = "Mötörhead";
string replaced = germanText.Replace("ö", "oe");
(ладно, не настоящее немецкое слово, но я не мог устоять)
Вы можете связать вызовы для Replace следующим образом
someText.Replace("ö", "oe").Replace("ä", "ae").Replace("ö", "oe")...