gpt4 book ai didi

python maketrans和translate的C#等价

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:54 28 4
gpt4 key购买 nike

我在哪里可以找到与 Python maketrans 和 translate 等效的 C# 代码?谢谢!

最佳答案

这应该带你到那里的大部分方式:

public class MakeTrans
{
private readonly Dictionary<char, char> d;
public MakeTrans(string intab, string outab)
{
d = Enumerable.Range(0, intab.Length).ToDictionary(i => intab[i], i => outab[i]);
//d = new Dictionary<char, char>();
//for (int i = 0; i < intab.Length; i++)
// d[intab[i]] = outab[i];
}
public string Translate(string src)
{
System.Text.StringBuilder sb = new StringBuilder(src.Length);
foreach (char src_c in src)
sb.Append(d.ContainsKey(src_c) ? d[src_c] : src_c);
return sb.ToString();
}
}

您有责任确保 intab 和 outtab 的长度相同。您可以添加删除字母等功能。

字典构建以一种很酷的 LINQ-y 方式完成。这有点不明显,因此提供了注释掉的代码并执行相同的操作。

这是它在 python ( example lifted from here ) 中的样子:

>>> from string import maketrans   # Required to call maketrans function.
>>>
>>> intab = "aeiou"
>>> outtab = "12345"
>>> trantab = maketrans(intab, outtab)
>>>
>>> str = "this is string example....wow!!!";
>>> print str.translate(trantab);
th3s 3s str3ng 2x1mpl2....w4w!!!

C#测试代码如下:

    static void Main(string[] args)
{
MakeTrans.MakeTrans mt = new MakeTrans.MakeTrans("aeiou", "12345");
Console.WriteLine("{0}", mt.Translate("this is string example....wow!!!"));
}

这是输出:

th3s 3s str3ng 2x1mpl2....w4w!!!

关于python maketrans和translate的C#等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610217/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com