Napseg
@Napseg

Аналог php функции strtr в .Net

Подскажите пожалуйста, как провернуть такую функцию в .Net?

например

$a=array("o" => "l", "l" => "o");
$b=strtr("ololo",$a);


Как я понимаю простым проходом по массиву не получится, потумчто иначе получается
1) lllll
2) ooooo
А должно получится lolol
  • Вопрос задан
  • 2822 просмотра
Решения вопроса 1
catlion
@catlion
using System;
using System.Text;
using System.Collections.Generic;

class Program
{
	public static void Main(string[] args)
	{
		var repl = new Dictionary<char, char> { {'o', 'l'}, {'l','o'} };
		var src = "ololo";
		Console.WriteLine("Source string: " + src + "; changed string: " + src.Strtr(repl));
		Console.ReadKey();
	}
}

public static class StringExt
{
	public static string Strtr(this string src, Dictionary<char, char> replacePairs) {
		var sb = new StringBuilder();
		foreach (char c in src) {
			if(replacePairs.ContainsKey(c)) {
				sb.Append(replacePairs[c]);
			} else {
				sb.Append(c);
			}
		}
		
		return sb.ToString();
	}
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Iliapan
@Iliapan
Есть несколько вариантов, самый полезный для вас — через регекспы. Разберитесь с ними и потом это пригодится. Regex.Replace и далее уже как нафантазируете.
Ответ написан
Комментировать
eforce
@eforce
Для начала можно взять это за основу Equalvilent method in c# for strtr functon in php?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы